I have 3 dropdownboxes. When the user selects values in box 1, it uses an ajaxcallback/xbasic function to populate box 2. When the user selects values in box 2, it uses an ajaxcallback/xbasic function to populate box 3. They work fine in Working Preview and Live Preview, but not when published to my development server. Any Ideas?
function populate_areas as c (e as p)
' Description:
' Populate the areas list control after species are chosen
'
'=======================================================================
'
' Revision History
'
' Date Description of Modification
' 08/03/2021 Initial version
'=======================================================================
' Arguments:
' e as Pointer to submitted record
'
' Calls: none
'
' Returns: string
' return value: list of values for catch areas
'=======================================================================
dim ls_select as c
dim ls_from as c
dim ls_where as c
dim ls_sql as c
dim ls_species_list as c
dim json as c
dim js as c
dim ls_subareas as c
dim ls_area as c
dim ls_areaname as c
dim ls_arealist as c
dim rcnt as N
dim cn as sql::Connection
dim rs as sql::ResultSet
dim args as sql::Arguments
dim connectflag as L
dim resultflag as L
dim goodflag as L
ls_species_list = get_species_list(e)
connectflag = cn.Open("::Name::TOCAS")
cn.PortableSQLEnabled = .f.
ls_select = "SELECT DISTINCT a5_catch_area_dropdown, catch_area_code "
ls_from = " FROM tocas_dba.species_catch_area_view "
ls_where = " WHERE species_code in (" + ls_species_list +")"
ls_sql = ls_select + ls_from + ls_where + " order by catch_area_code"
ls_arealist = "['ALL','']"
'debug(1)
resultflag = cn.Execute(ls_sql)
if resultflag then
rs = cn.ResultSet
goodflag = rs.nextRow()
'debug(1)
rcnt = 1
while goodflag
ls_areaname = rs.data(1)
ls_area = rs.data(2)
' if rcnt = 1 then
' ls_arealist = "['" + ls_areaname + "','" + ls_area + "']"
' else
ls_arealist = ls_arealist + ",['" + ls_areaname + "','" + ls_area + "']"
' end if
rcnt = rcnt + 1
goodflag = rs.nextRow()
end while
end if
cn.FreeResult()
cn.close()
ls_arealist = "[" + ls_arealist + "]"
js = "{dialog.Object}.populateDropdownBox('CATCH_AREA'," + ls_arealist + ", true);"
populate_areas = js
end function ' populate areas
function populate_subareas as c (e as p)
' Description:
' Populate the subareas control after species and catch areas are chosen
'
'=======================================================================
'
' Revision History
'
' Date Description of Modification
' 08/18/2021 Initial version
'=======================================================================
' Arguments:
' e as Pointer to submitted record
'
' Calls: none
'
' Returns: string
' return value: list of values for subareas
'=======================================================================
dim ls_select as c
dim ls_from as c
dim ls_where as c
dim ls_sql as c
dim ls_species_list as c
dim json as c
dim js as c
dim ls_subareas as c
dim ls_subarea as c
dim ls_subareaname as c
dim ls_arealist as c
dim ls_species_list as c
dim rcnt as N
dim cn as sql::Connection
dim rs as sql::ResultSet
dim args as sql::Arguments
dim connectflag as L
dim resultflag as L
dim goodflag as L
ls_species_list = get_species_list(e)
ls_arealist = get_area_list(e)
connectflag = cn.Open("::Name::TOCAS")
cn.PortableSQLEnabled = .f.
ls_select = "SELECT DISTINCT a5_subarea_dropdown, tribal_subunit_code "
ls_from = " FROM tocas_dba.species_area_subarea_view "
ls_where = " WHERE species_code in (" + ls_species_list +") AND catch_area_code in (" + ls_arealist + ")"
ls_sql = ls_select + ls_from + ls_where + " order by a5_subarea_dropdown"
ls_subarealist = "['ALL','']"
'debug(1)
resultflag = cn.Execute(ls_sql)
if resultflag then
rs = cn.ResultSet
goodflag = rs.nextRow()
'debug(1)
rcnt = 1
while goodflag
ls_subareaname = rs.data(1)
ls_subarea = rs.data(2)
' if rcnt = 1 then
' ls_subarealist = "['" + ls_subareaname + "','" + ls_subarea + "']"
' else
ls_subarealist = ls_subarealist + ",['" + ls_subareaname + "','" + ls_subarea + "']"
' end if
rcnt = rcnt + 1
goodflag = rs.nextRow()
end while
end if
cn.FreeResult()
cn.close()
ls_subarealist = "[" + ls_subarealist + "]"
js = "{dialog.Object}.populateDropdownBox('SUBAREAS'," + ls_subarealist + ", true);"
populate_subareas = js
end function ' populate subareas
function populate_areas as c (e as p)
' Description:
' Populate the areas list control after species are chosen
'
'=======================================================================
'
' Revision History
'
' Date Description of Modification
' 08/03/2021 Initial version
'=======================================================================
' Arguments:
' e as Pointer to submitted record
'
' Calls: none
'
' Returns: string
' return value: list of values for catch areas
'=======================================================================
dim ls_select as c
dim ls_from as c
dim ls_where as c
dim ls_sql as c
dim ls_species_list as c
dim json as c
dim js as c
dim ls_subareas as c
dim ls_area as c
dim ls_areaname as c
dim ls_arealist as c
dim rcnt as N
dim cn as sql::Connection
dim rs as sql::ResultSet
dim args as sql::Arguments
dim connectflag as L
dim resultflag as L
dim goodflag as L
ls_species_list = get_species_list(e)
connectflag = cn.Open("::Name::TOCAS")
cn.PortableSQLEnabled = .f.
ls_select = "SELECT DISTINCT a5_catch_area_dropdown, catch_area_code "
ls_from = " FROM tocas_dba.species_catch_area_view "
ls_where = " WHERE species_code in (" + ls_species_list +")"
ls_sql = ls_select + ls_from + ls_where + " order by catch_area_code"
ls_arealist = "['ALL','']"
'debug(1)
resultflag = cn.Execute(ls_sql)
if resultflag then
rs = cn.ResultSet
goodflag = rs.nextRow()
'debug(1)
rcnt = 1
while goodflag
ls_areaname = rs.data(1)
ls_area = rs.data(2)
' if rcnt = 1 then
' ls_arealist = "['" + ls_areaname + "','" + ls_area + "']"
' else
ls_arealist = ls_arealist + ",['" + ls_areaname + "','" + ls_area + "']"
' end if
rcnt = rcnt + 1
goodflag = rs.nextRow()
end while
end if
cn.FreeResult()
cn.close()
ls_arealist = "[" + ls_arealist + "]"
js = "{dialog.Object}.populateDropdownBox('CATCH_AREA'," + ls_arealist + ", true);"
populate_areas = js
end function ' populate areas
function populate_subareas as c (e as p)
' Description:
' Populate the subareas control after species and catch areas are chosen
'
'=======================================================================
'
' Revision History
'
' Date Description of Modification
' 08/18/2021 Initial version
'=======================================================================
' Arguments:
' e as Pointer to submitted record
'
' Calls: none
'
' Returns: string
' return value: list of values for subareas
'=======================================================================
dim ls_select as c
dim ls_from as c
dim ls_where as c
dim ls_sql as c
dim ls_species_list as c
dim json as c
dim js as c
dim ls_subareas as c
dim ls_subarea as c
dim ls_subareaname as c
dim ls_arealist as c
dim ls_species_list as c
dim rcnt as N
dim cn as sql::Connection
dim rs as sql::ResultSet
dim args as sql::Arguments
dim connectflag as L
dim resultflag as L
dim goodflag as L
ls_species_list = get_species_list(e)
ls_arealist = get_area_list(e)
connectflag = cn.Open("::Name::TOCAS")
cn.PortableSQLEnabled = .f.
ls_select = "SELECT DISTINCT a5_subarea_dropdown, tribal_subunit_code "
ls_from = " FROM tocas_dba.species_area_subarea_view "
ls_where = " WHERE species_code in (" + ls_species_list +") AND catch_area_code in (" + ls_arealist + ")"
ls_sql = ls_select + ls_from + ls_where + " order by a5_subarea_dropdown"
ls_subarealist = "['ALL','']"
'debug(1)
resultflag = cn.Execute(ls_sql)
if resultflag then
rs = cn.ResultSet
goodflag = rs.nextRow()
'debug(1)
rcnt = 1
while goodflag
ls_subareaname = rs.data(1)
ls_subarea = rs.data(2)
' if rcnt = 1 then
' ls_subarealist = "['" + ls_subareaname + "','" + ls_subarea + "']"
' else
ls_subarealist = ls_subarealist + ",['" + ls_subareaname + "','" + ls_subarea + "']"
' end if
rcnt = rcnt + 1
goodflag = rs.nextRow()
end while
end if
cn.FreeResult()
cn.close()
ls_subarealist = "[" + ls_subarealist + "]"
js = "{dialog.Object}.populateDropdownBox('SUBAREAS'," + ls_subarealist + ", true);"
populate_subareas = js
end function ' populate subareas
Comment