Как отобразить данные из хранимой процедуры в раскрывающемся списке в Classic ASP? - PullRequest
1 голос
/ 26 июля 2010

Это связано с классическим ASP-кодом. Страница извлекает данные для определенного ProjectCode.

Существует общее текстовое поле, в котором отображается местоположение сайта для выбранного кода проекта. Я хочу изменить его на выпадающий, чтобы пользователь мог изменить расположение сайта из доступных параметров (извлеченных из БД) и затем сохранить его. Кроме того, на странице загрузки должно быть выбрано Site-Location of Project-Code для этой конкретной записи.

Я добавил следующий код на свою страницу, но он не работает (определенно я новичок в классическом 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 

Также, при нажатии кнопки сохранения, я должен отправить выбранное раскрывающееся значение для обновления запроса.

Ответы [ 2 ]

1 голос
/ 26 июля 2010

Вы используете неправильное имя для переменной набора записей ..

Вы назвали его rsSiteList, но используете его как rs

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

Обновление

Вы строите строку со всеми опциями ..

Вы должны написать ее на странице в какой-то момент .. response.write(SiteLocationList)

или напишите <options> непосредственно на страницу ..

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

обновление 2

Не знаете, почему вы этого не делаетехотите распечатать параметры, когда вы читаете их из набора записей, но предпочитаете вместо этого сделать огромную строку и напечатать ее в конце ... это то же самое, но намного чище ..

Следующее должно выбратьрасположение, которое соответствует 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>

В общем, вам нужно следить за вложенностью html, поскольку она может все испортить.Также вам нужно прочитать немного о взаимодействии между ASP и HTML ...

0 голосов
/ 26 июля 2010

Вы почти получили его, вам не хватает тега "select":

    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>
...