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>
                        &nbsp;<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
                                

Reply via email to