Problem with dropdown lists: one disappears after the previous one is selected

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • mldardy
    New Member
    • Mar 2008
    • 8

    #1

    Problem with dropdown lists: one disappears after the previous one is selected

    I really hope this makes sense to someone because I really need some assistance with this:

    I have a asp page that I am working on that has as many as 4 dropdownlists depending on what I choose in those dropdowns. The 4 dropdowns are named:iSource, iSub1, iSub2, iSub3. To begin I select an item for iSource then iSub1 comes up and I have an option to choose ALL or any of the other items in the recordset. If I choose ALL it will bring up iSub2 which populates everything that I would have chosen for each of the items in iSub1. After selecting ALL and iSub2 dropdown comes up I choose an item from iSub2. This is where the problem happens. Once I select something from iSub2 dropdown it disappears and iSub1 comes back up. What I want it to do once I select something from iSub2 it should show iSub3 dropdown. Based on my code what am I doing incorrectly. I am showing two pieces of code from the page. The first is the html table with each of the dropdowns and the second is the sql recordset statements:

    Code:
    <table width="100%" cellpadding="2" cellspacing="0" border="0">
    		<tr>
    				<td>
    				Select a Source:
    				<select name="cboSource" id="cboSource" onchange="cboSourceChange()">
    			<option value="0"></option>
    		<%	While Not rsSource.EOF%>
    		<option value="<%=rsSource("iParameterId")%>"
     <%if cLng(rsSource("iParameterId")) = cLng(iSource) then response.Write " Selected " %>>
    	<%=rsSource("vchParameterDesc")%>
    			</option>
    			<%	rsSource.MoveNext
    			wend
    				%>
    		</select>
    		&nbsp;(<%=iSource%>)
    	</td>
    	</tr>
    	<tr>
    	<td>
    			<%	if iSource <> "0" then %>
    				Select a Source Sub 1:
    			<%		if not rsSub1.EOF then %>
    			<select name="cboSub1" id="cboSub1" onchange="cboSub1Change()">
    			<option value="0"></option>
    				<option value="1">ALL</option>
    			<%	While Not rsSub1.EOF%>
    				<option value="<%=rsSub1("iParameterId")%>" 
    <%if cLng(rsSub1("iParameterId")) = cLng(iSub1) then response.Write " Selected " %>>
    	<%=rsSub1("vchParameterDesc")%>
    		</option>
    			<%
    	rsSub1.MoveNext
    		wend
    				%>
    		</select>
    		&nbsp;(<%=iSub1%>)
    	<%		else 
    	response.Write "No Source Sub 1 options defined." 
    		end if %>
    		</td>
    			</tr>
    				<tr>
    			<td>
    		<%		if iSub1 <> "0" then %>
    		Select a Source Sub 2:
    		<%			if not rsSub2.EOF then %>
    				<select name="cboSub2" id="cboSub2" onchange="cboSub2Change()">
    					<option value="0"></option>
    	<%				While Not rsSub2.EOF%>
    		<option value="<%=rsSub2("iParameterId")%>" 
    <%if cLng(rsSub2("iParameterId")) = cLng(iSub2) then response.Write " Selected " %>>
    	<%=rsSub2("vchParameterDesc")%>
    		</option>
    			<%rsSub2.MoveNext
    			wend
    						%>
    		</select>
    		nbsp;(<%=iSub2%>)
    			<%	else 
    		response.Write "No Source Sub 2 options defined." 
    			end if %>
    			</td>
    				</tr>
    				<tr>
    			<td>
    		<%			if iSub2 <> "0" then %>
    			Select a Source Sub 3:
    		<%				if not rsSub3.EOF then %>
    		<select name="cboSub3" id="cboSub3" onchange="cboSub3Change()">
    				<option value="0"></option>
    			<%					While Not rsSub3.EOF%>
    		<option value="<%=rsSub3("iParameterId")%>"
    <%if cLng(rsSub3("iParameterId")) = cLng(iSub3) then response.Write " Selected " %>>
    <%=rsSub3("vchParameterDesc")%>
    		</option>
    	<%
    	rsSub3.MoveNext
    	wend
    		%>
    		</select>
    	&nbsp;(<%=iSub3%>)
    	<%		else 
    		response.Write "No Source Sub 3 options defined." 
    	end if %>
    	<%			end if 
    	end if 
    end if %>
    			</td>
    		</tr>
    		</table>
    Code:
    ' Get a recordset of the primary sources for an Onyx Sales Opportunity
    sql = "Select iParameterId, vchParameterDesc from ReferenceDefinition " & _
    		"where iReferenceId = 11 and tiRecordStatus = 1 and iParentId = 3 order by vchParameterDesc"
    
    Set rsSource = Server.CreateObject("ADODB.Recordset")
    rsSource.Open sql, cnOnyx, 0, 1
    ' If a source was selected, get a list of the sub source 1 options.
    If iSource <> "0" then	
    	sql = "Select iParameterId, vchParameterDesc from ReferenceDefinition " & _
    			"where iReferenceId = 641 and tiRecordStatus = 1 and iParentId = " & iSource & _
    			"  order by vchParameterDesc"
    	Set rsSub1 = Server.CreateObject("ADODB.Recordset")
    	rsSub1.Open sql, cnOnyx, 0, 1	
    		' If a sub source 1 is selected, get a list of sub source 2 options.
    	
    	'M006A Begin
    	If iSub1 <> "0" then
     If iSub1 = "1" then
      sql = "Select iParameterId, vchParameterDesc from ReferenceDefinition " & _
                    "where iReferenceId = 642 and tiRecordStatus = 1" & _
                    " order by vchParameterDesc"
     else
             sql = "Select iParameterId, vchParameterDesc from ReferenceDefinition " & _
                    "where iReferenceId = 642 and tiRecordStatus = 1 and iParentId = " & iSub1 & _
                    " order by vchParameterDesc"
                    
     end if
    
            Set rsSub2 = Server.CreateObject("ADODB.Recordset")
            rsSub2.Open sql, cnOnyx, 0, 1
                      Set rsSub2 = Server.CreateObject("ADODB.Recordset")
           rsSub2.Open sql, cnOnyx, 0, 1  
    
    if not rsSub2.eof then
    rsSub2.MoveFirst
    
    end if
    
      'end if
      'M006A End
            ' If a sub source 2 is selected, get a list of sub source 3 options.
            If iSub2 <> "0" then
            
                sql = "Select iParameterId, vchParameterDesc from ReferenceDefinition " & _
                        "where iReferenceId = 643 and tiRecordStatus" & _
                        "order by vchParameterDesc"
                      
                Set rsSub3 = Server.CreateObject("ADODB.Recordset")
                rsSub3.Open sql, cnOnyx, 0, 1
                  
            End If   
            'response.Write(sql)
                      '  response.End()
        End If   
        
    End If
  • jhardman
    Recognized Expert Specialist
    • Jan 2007
    • 3405

    #2
    This isn't really an asp question, it all depends on the javascript functions (cboSub1Change etc) that open the selects. I bet if you look carefully you aren't tracking the names of the controls carefully.

    Anyway, if you need more help, I would post in the javascript forum.

    Jared

    Comment

    Working...