Wrox Programmer Forums
|
Javascript General Javascript discussions.
Welcome to the p2p.wrox.com Forums.

You are currently viewing the Javascript section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
 
Old May 12th, 2004, 07:28 PM
Registered User
 
Join Date: May 2004
Posts: 9
Thanks: 0
Thanked 0 Times in 0 Posts
Default 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>&nbsp; </p>
    <p>&nbsp;</p>
  </div>
</form>

Thanks

Quinn


 
Old May 13th, 2004, 02:02 AM
Imar's Avatar
Wrox Author
 
Join Date: Jun 2003
Posts: 17,089
Thanks: 80
Thanked 1,576 Times in 1,552 Posts
Default

Cross-post. Please see here: http://p2p.wrox.com/topic.asp?TOPIC_ID=13501 for any replies.

Can you please not cross-post your messages? Your message will be read anyway.

Cheers,

Imar
---------------------------------------
Imar Spaanjaars
Everyone is unique, except for me.





Similar Threads
Thread Thread Starter Forum Replies Last Post
How to retain values of dynamic controls when page fozia_izhar .NET Framework 1.x 1 February 7th, 2007 02:32 PM
How to retain form values from dependent list ? George B Javascript 0 September 15th, 2006 03:54 PM
SOS Retain values on SubmitText field and DropDown rabbit124 Classic ASP Basics 17 March 7th, 2006 07:15 PM
SOS: Retain values on Submit in Textfield,Dropdown rabbit124 Classic ASP Professional 1 March 7th, 2006 07:12 PM





Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Copyright (c) 2020 John Wiley & Sons, Inc.