Retain form values
I have a ASP page(timeOffRequest.asp) with 2 text fields and 2 list boxes. There is a parent list box(mnuDept) and the other one(mnuName) is dependent on this parent.
My Problem: I want to retain the values on the 2 list boxes after submit. I am able to retain the first list box values by using
<option value="<%=(rsDepartment.Fields.Item("deptID").Valu e)%>"<%if rsDepartment.fields("deptID")=Request.queryString( "mnuDept") then%>Selected<%end if%>><%=(rsDepartment.Fields.Item("deptName").Valu e)%></option>
How can I retain the 2nd list box values after submitting? I am using Javascript to populate the dependent list...any suggestion would be really helpful...
After submission, form action go to "insert_action1.asp" page and it will redirect back to this form page(timeoffRequest.asp)
Here is the JavaScript code:
script language="JavaScript">
<!--
var arrDynaList = new Array();
var arrDL1 = new Array();
arrDL1[1] = "mnuDept"; // Name of parent list box
arrDL1[2] = "frmTimeOffRequest"; // Name of form containing parent list box
arrDL1[3] = "mnuName"; // Name of child list box
arrDL1[4] = "frmTimeOffRequest"; // Name of form containing child list box
arrDL1[5] = arrDynaList;
<%
Dim txtDynaListRelation, txtDynaListLabel, txtDynaListValue, oDynaListRS
txtDynaListRelation = "deptID" ' Name of recordset field relating to parent
txtDynaListLabel = "name" ' Name of recordset field for child Item Label
txtDynaListValue = "empID" ' Name of recordset field for child Value
Set oDynaListRS = rsEmp ' Name of child list box recordset
Dim varDynaList
varDynaList = -1
Dim varMaxWidth
varMaxWidth = "1"
Dim varCheckGroup
varCheckGroup = oDynaListRS.Fields.Item(txtDynaListRelation).Value
Dim varCheckLength
varCheckLength = 0
Dim varMaxLength
varMaxLength = 0
While (NOT oDynaListRS.EOF)
If (varCheckGroup <> oDynaListRS.Fields.Item(txtDynaListRelation).Value ) Then
If (varCheckLength > varMaxLength) Then
varMaxLength = varCheckLength
End If
varCheckLength = 0
End If
%>
arrDynaList[<%=(varDynaList+1)%>] = "<%=(oDynaListRS.Fields.Item(txtDynaListRelation). Value)%>"
arrDynaList[<%=(varDynaList+2)%>] = "<%=(oDynaListRS.Fields.Item(txtDynaListLabel).Val ue)%>"
arrDynaList[<%=(varDynaList+3)%>] = "<%=(oDynaListRS.Fields.Item(txtDynaListValue).Val ue)%>"
<%
If (len(oDynaListRS.Fields.Item(txtDynaListLabel).Val ue) > len(varMaxWidth)) Then
varMaxWidth = oDynaListRS.Fields.Item(txtDynaListLabel).Value
End If
varCheckLength = varCheckLength + 1
varDynaList = varDynaList + 3
oDynaListRS.MoveNext()
Wend
If (varCheckLength > varMaxLength) Then
varMaxLength = varCheckLength
End If
%>
//-->
</script>
<script language="JavaScript">
<!--
function setDynaList(arrDL){
var oList1 = document.forms[arrDL[2]].elements[arrDL[1]];
var oList2 = document.forms[arrDL[4]].elements[arrDL[3]];
var arrList = arrDL[5];
clearDynaList(oList2);
if (oList1.selectedIndex == -1){
oList1.selectedIndex = 0;
}
populateDynaList(oList2, oList1[oList1.selectedIndex].value, arrList);
return true;
}
function clearDynaList(oList){
for (var i = oList.options.length; i >= 0; i--){
oList.options[i] = null;
}
oList.selectedIndex = -1;
}
function populateDynaList(oList, nIndex, aArray){
for (var i = 0; i < aArray.length; i= i + 3){
if (aArray[i] == nIndex){
oList.options[oList.options.length] = new Option(aArray[i + 1], aArray[i + 2]);
}
}
if (oList.options.length == 0){
oList.options[oList.options.length] = new Option("[none available]",0);
}
oList.selectedIndex = 0;
}
function MM_callJS(jsStr) { //v2.0
return eval(jsStr)
}
//-->
</script>
*My form code:
<form name="frmTimeOffRequest" method="post" action ="insert_action1.asp" onsubmit="return validateForm(this)">
<div align="center">
<p class="tse01"><b></b></p>
<table border="1" width="80%" bgcolor="#669999">
<tr bgcolor="#669999">
<td colspan="4" height="37" valign="middle" align="left">
<div align="center"><b>Time-Off Request Form </b></div>
</td>
</tr>
<tr>
<td width="150" height="37" valign="middle" align="left">
<div align="right">Department:</div>
</td>
<td colspan="3" class="tse01" height="37">
<select name="mnuDept" onChange="MM_callJS('setDynaList(arrDL1)')">
<%
While (NOT rsDepartment.EOF)
%>
<option value="<%=(rsDepartment.Fields.Item("deptID").Valu e)%>"<%if rsDepartment.fields("deptID")=Request.queryString( "mnuDept") then%>Selected<%end if%>><%=(rsDepartment.Fields.Item("deptName").Valu e)%></option>
<%
rsDepartment.MoveNext()
Wend
If (rsDepartment.CursorType > 0) Then
rsDepartment.MoveFirst
Else
rsDepartment.Requery
End If
%>
</select>
</td>
</tr>
<tr>
<td width="150" height="35" valign="middle">
<div align="right">Name:</div>
</td>
<td colspan="3" class="tse01" height="35">
<select name="mnuName">
</select>
</td>
</tr>
<tr>
<td width="150" height="26" nowrap> <b>Date</b>
</td>
<td width="207" align="left" height="26" nowrap>Holiday Type</td>
</tr>
<tr>
<td width="150" height="29">
<input type="text" name="txtDate1" size="10">
<a href="javascript:show_calendar('frmTimeOffRequest. txtDate1');" onmouseover="window.status='Date Picker';return true;" onmouseout="window.status='';return true;"><img src="../../Images/show-calendar.gif" width=24 height=22 border=0></a>
</td>
<td width="207" class="tse01" height="29">
<input type="text" name="txtHol1">
</td>
</tr>
<tr>
<td colspan="4" height="45">
<div align="center">
<input type="submit" name="Submit" value="Save">
<input type="hidden" name="txtTransType" value="T">
</div>
</td>
</tr>
</table>
</div>
<div align="center">
<p> </p>
<p> </p>
</div>
</form>
Thanks
Quinn
|