Question

This is related to Classic ASP code. A page fetches data for a particular ProjectCode.

There is a general text field which shows the Site-Location for selected Project-Code. I want to change it to drop down, so that a user can change the Site-Location from options available (fetched from DB) and then save it. Also, on page load the Site-Location of Project-Code for that particular entry should be selected.

I have added following code to my Page, but it doesn't work(definately I am new to classic ASP).

    strSQL = "SP_GET_SiteLocation"
    Set rsSiteList = RunSQLQuery(strSQL)

    'show the list
    If Not rsSiteList.EOF Then
    Do While NOT rs.EOF
    SiteLocationList= SiteLocationList & "<option value="">" & rs("LOCATION") & "</option>"
    rs.MoveNext 

Also, on click of save button, i have to send the selected drop down value to update query.

Was it helpful?

Solution

You use a wrong name for the recordset variable..

You named it rsSiteList but you use it as rs

Do While NOT rsSiteList.EOF
    SiteLocationList= SiteLocationList & "<option value="">" & rsSiteList("LOCATION") & "</option>"
    rsSiteList.MoveNext 

Update

You are building a string with all the options ..

you should write it in the page at some point.. response.write(SiteLocationList)

or write the <options> directly to the page..

<select name="somename"><%
    Do While NOT rsSiteList.EOF
   %>
       <option value=""><%=rsSiteList("LOCATION")%></option>
   <%
         rsSiteList.MoveNext 
     Loop
   %>
</select>

update 2

Not sure why you do not want to print the options as you read them from the recordset but prefer to make a huge string instead and print that at the end ... it is the same thing but much more cleaner ..

The following should select the location that matches the rsReqDetails("AppReqSiteID")

<td>
<%
  strSQL="SP_EPAPM_GET_SiteLocation"
  Set rsSiteList=RunSQLQuery(strSQL)
  selectedValue = rsReqDetails("AppReqSiteID")
  If Not rsSiteList.EOF Then
    Do While NOT rsSiteList.EOF
       loc = rsSiteList("LOCATION")
       if loc <> selectedValue then
         optionOpen = "<option>"
       else
         optionOpen = "<option selected=""selected"">"
       end if
       optionClose = "</option>"
       SiteLocationList=SiteLocationList & optionOpen  & rsSiteList("LOCATION") & optionClose 
      rsSiteList.MoveNext 
    Loop
  End If
  %>
  <select id="SiteLocationList" NAME="SiteLocationList">
    <%response.write(SiteLocationList)%>
  </select>
</td>

In general you need to watch the nesting of html as it can mess everything up. Also you need to read a little on the interactions between ASP and HTML ...

OTHER TIPS

You almost got it, you're missing the "select" tag:

    strSQL = "SP_GET_SiteLocation"  
Set rsSiteList = RunSQLQuery(strSQL)  

'show the list  
If Not rsSiteList.EOF Then  %>
<select><%Do While NOT rs.EOF SiteLocationList= SiteLocationList & "<option value="">" & rs("LOCATION") & "</option>"  
rs.MoveNext %>
</select>
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top