I've got a JavaScript that takes the selection from the first pull down menu
and populates the second pull down menu based on the first. The Script works
fine and give the result page it's suppose to after submitting the form. The
problem is, when you hit the back button, the first pull down menu is still
selected but the second dynamically populated pull down has gone blank. I've
got a CEO that is not happy about this. He wants the selection to stay when
the user hits the back button. Is this a browser state limitation?
Here's some code. Any comments are appreciated!!!
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
new Array(
<CFOUTPUT query="QUERYNAME_ONE">
new Array("#Part_Number1# - #prod_type#", "#Part_Number1#"),
</CFOUTPUT>
new Array("", "")
),
new Array(
<CFOUTPUT query="QUERYNAME_TWO">
new Array("#Part_Number1# - #prod_type#", "#Part_Number1#"),
</CFOUTPUT>
new Array("", "")
)
);
function fillSelectFromArray(selectCtrl, itemArray, goodPrompt, badPrompt,
defaultItem) {
var i, j;
var prompt;
// empty existing items
for (i = selectCtrl.options.length; i >= 0; i--) {
selectCtrl.options[i] = null;
}
prompt = (itemArray != null) ? goodPrompt : badPrompt;
if (prompt == null) {
j = 0;
}
else {
selectCtrl.options[0] = new Option(prompt);
j = 1;
}
if (itemArray != null) {
// add new items
for (i = 0; i < itemArray.length; i++) {
selectCtrl.options[j] = new Option(itemArray[i][0]);
if (itemArray[i][1] != null) {
selectCtrl.options[j].value = itemArray[i][1];
}
j++;
}
// select first item (prompt) for sub list
selectCtrl.options[0].selected = true;
}
}
// End -->
</script>
THE SELECT PART OF THE FORM
<select name="man" size="1" onChange="fillSelectFromArray(this.form.pn,
((this.selectedIndex == -1) ? null : team[this.selectedIndex-1]));">
<option value="0" SELECTED>Choose One</option>
<CFOUTPUT query="ViewSearch_MANUFACTURER">
<option value="#Vendor#">#Vendor#</option>
</CFOUTPUT>
</select>
<font face="trebuchet ms, trebuchet, verdana,
arial, helvetica" size="3"><b>Part Number:</b></font>
<SELECT NAME="pn" SIZE="1">
<OPTION>
</OPTION>
<OPTION>
</OPTION>
<OPTION>
</OPTION>
<OPTION>
</OPTION>
<OPTION>
</OPTION>
</SELECT>
> I don't know if this is a bug, undocumented feature or correct behavior?
> But has anybody run into this before?
>
> I have some code such as this in a CFC creating an array of queries.
>
> <!---
> *******************
> Pseudo code example
> *******************
> --->
>
> <cfset QueryAry = ArrayNew(1)>
>
> <!--- This query will return one record --->
> <cfquery name="First" datasource="DSN">
> SELECT Field1, Field2, Field3
> FROM Table1
> WHERE ID = #IDVar#
> </cfquery>
> <cfset QueryAry[1] = First>
>
> <!--- This query will return zero to many records --->
> <cfquery name="Second" datasource="DSN">
> SELECT Field4, Field5, Field6
> FROM Table2
> WHERE ID = #IDVar#
> </cfquery>
> <cfset QueryAry[2] = Second>
>
> <cfreturn QueryAry>
>
> Then when I try to output the query results stored in the array returned
> from the CFC.
>
> <cfoutput>
> #IsQuery(QueryAry[1])# <!--- This returns True --->
> #IsQuery(QueryAry[2])# <!--- This returns True --->
> </cfoutput>
>
> <!--- Case 1: This does not work --->
> <cfoutput query="QueryAry[1]">
> #Field1#
> #Field2#
> #Field3#
> </cfoutput>
>
> <cfoutput query="QueryAry[2]">
> #Field4#
> #Field5#
> #Field6#
> </cfoutput>
> <!--- End Case 1 --->
>
> <!--- Case 2: This does not work --->
> <cfloop query="QueryAry[1]">
> #Field1#
> #Field2#
> #Field3#
> </cfloop>
>
> <cfloop query="QueryAry[2]">
> #Field4#
> #Field5#
> #Field6#
> </cfloop>
> <!--- End Case 2 --->
>
> <!--- Case 3: This does work --->
> <cfoutput>
> #QueryAry[1]["Field1"][1]#
> #QueryAry[1]["Field2"][1]#
> #QueryAry[1]["Field3"][1]#
> </cfoutput>
>
> <cfloop from="1" to="#QueryAry[2].RecordCount#" index="i">
> <cfoutput>
> #QueryAry[2]["Field4"][i]#
> #QueryAry[2]["Field5"][i]#
> #QueryAry[2]["Field6"][i]#
> </cfoutput>
> </cfloop>
> <!--- End Case 3 --->
>
> <!--- *** End Pseudo Code Example *** --->
>
> I would be interested in any comments on this behavior by others in the CF
> community, as well as Macromedia types if they care too say something.
>
> --------------
> Ian Skinner
> Web Programmer
> BloodSource
> Sacramento, CA
>
>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Archives: http://www.houseoffusion.com/cf_lists/index.cfm?forumid=4
Subscription:
http://www.houseoffusion.com/cf_lists/index.cfm?method=subscribe&forumid=4
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Structure your ColdFusion code with Fusebox. Get the official book at
http://www.fusionauthority.com/bkinfo.cfm
Unsubscribe:
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4