powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как переслать данные формы той же форме?
19 сообщений из 19, страница 1 из 1
Как переслать данные формы той же форме?
    #33315847
Наташка 22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажите, как в обычном асп можно сделать такую фишку:

в БД (SQL Server 2000) есть табличка договоров и табличка контрактов
надо сделать такую форму:
сначала из бд контрактов выбирается номер контракта:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Sub ContractComboBox(defvalue)
  Dim l_strSQL
  Dim l_rstRecord
  Dim nid
  Dim nname
  Dim sel
     l_strSQL = "SELECT contract,idcont FROM contract ORDER BY contract asc"
     Set l_rstRecord = Server.CreateObject("ADODB.Recordset")
     l_rstRecord.Open l_strSQL,m_cnnConnDB,adOpenKeyset,adLockOptimistic

     Response.Write "<select  name=""contract""><option value="""">" & m_str_interval
      While Not l_rstRecord.EOF
         nid = l_rstRecord("idcont")
         nname = l_rstRecord("contract")
         if trim(nname)=trim(defvalue) then
			sel = "selected"
		 else
			sel = ""
		 end if
         Response.Write "<option value=" & nid & " " & sel & ">" & nname         
         l_rstRecord.MoveNext
      Wend
      l_rstRecord.Close
      Set l_rstRecord = Nothing 
      Response.Write "</select>"
End Sub 

можно ли сделать на этой же форме еще комбобокс, в котором будет список тех договоров, которые относятся к этому контракту, т.е. он должен формироваться в зависимости от того, что выбрано в первом комбобоксе?
...
Рейтинг: 0 / 0
Как переслать данные формы той же форме?
    #33316605
Жерлен Жерленыч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если данных не слишком много, можно предварительно выгрузить всё в JS массивы и потом зи них заполнять второй комбо.
или как вариант изпользовать iframe, который в зависимости от переданного контракта будет формировать список договоров (или как там тебе надо :-))
и тот и другой вариант происходит без перезагрузки страницы
...
Рейтинг: 0 / 0
Как переслать данные формы той же форме?
    #33333076
Наташка 22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Данных может оказаться довольно много. Мне надо сделать таким образом: на ончендж 1го перезапрос страницы на сервере. Только как это написать на асп и как сохранить другие уже, возможно заполненные поля?
...
Рейтинг: 0 / 0
Как переслать данные формы той же форме?
    #33333338
Фотография Sam Andrews
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на асп такое не напишешь, надо использовать джаваскрипт, по каждому изменению значения сабмитить форму, запрашивать заполненые поля и подставлять их значения в возвращаемую страницу...

с уважением...
...
Рейтинг: 0 / 0
Как переслать данные формы той же форме?
    #33333487
Наташка 22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sam Andrewsна асп такое не напишешь, надо использовать джаваскрипт, по каждому изменению значения сабмитить форму, запрашивать заполненые поля и подставлять их значения в возвращаемую страницу...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Sub ContractOnChangeComboBox(defvalue)
  Dim l_strSQL,l_rstRecord,nid,nname,sel
     l_strSQL = "SELECT contract,idcont FROM contract ORDER BY contract asc"
     Set l_rstRecord = Server.CreateObject("ADODB.Recordset")
     l_rstRecord.Open l_strSQL,m_cnnConnDB,adOpenKeyset,adLockOptimistic
 Response.Write "<select name=""contract"" onChange=""form1.action='doc_add.asp';form1.submit();""><option value="""">" 
      While Not l_rstRecord.EOF
         nid = l_rstRecord("idcont")
         nname = l_rstRecord("contract")
         if trim(nname)=trim(defvalue) then
			sel = "selected"
		 else
			sel = ""
		 end if
         Response.Write "<option value=" & nid & " " & sel & ">" & nname         
         l_rstRecord.MoveNext
      Wend
      l_rstRecord.Close
      Set l_rstRecord = Nothing 
      Response.Write "</select>"
End Sub 
А где запрашивать заполненные поля?
...
Рейтинг: 0 / 0
Как переслать данные формы той же форме?
    #33333604
Фотография Sam Andrews
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну например в контролах в value прописать соответствующие Request.Form (.QueryString в зависимости от метода формы).., соответственно про сабмите формы, заполненные поля будут возвращать свои значения, и они снова будут присваиваться, и форма будет возвращаться пользователю с этими же значениями...

примитивный пример:
Код: plaintext
1.
2.
3.
4.
5.
6.
<%@ Language=VBScript %>
<html>
<form method="post">
<input type="text" id="test" name="test" value=<%= Request.Form("test") %>>
<input type="submit">
</form>
<html>

с уважением...
...
Рейтинг: 0 / 0
Как переслать данные формы той же форме?
    #33333655
Наташка 22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо, сейчас попробую!
...
Рейтинг: 0 / 0
Как переслать данные формы той же форме?
    #33333737
Наташка 22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С текстовыми полями все получилось, но теперь такая проблема:
На этой же форме есть еще независимые комбобоксы, описанные как функции в inc файле:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Sub TypeComboBox(defvalue)
  Dim l_strSQL,l_rstRecord,nid,nname,sel
     l_strSQL = "SELECT type,idtype FROM type ORDER BY type asc"
     Set l_rstRecord = Server.CreateObject("ADODB.Recordset")
     l_rstRecord.Open l_strSQL,m_cnnConnDB,adOpenKeyset,adLockOptimistic
     Response.Write "<select  name=""type""><option value="""">" 
      While Not l_rstRecord.EOF
         nid = l_rstRecord("idtype")
         nname = l_rstRecord("type")
         if trim(nname)=trim(defvalue) then
			sel = "selected"
		 else
			sel = ""
		 end if
         Response.Write "<option value=" & nid & " " & sel & ">" & nname         
         l_rstRecord.MoveNext
      Wend
      l_rstRecord.Close
      Set l_rstRecord = Nothing 
      Response.Write "</select>"
End Sub 
на основной странице пишу:
Код: plaintext
<%TypeComboBox("Request.Form("type")")%>
после субмита (выбора контракта) этот комбобокс остается пустым почему-то..
...
Рейтинг: 0 / 0
Как переслать данные формы той же форме?
    #33333740
Наташка 22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и еще на этой форме есть textarea. Как с ней поступить - у нее же вроде нельзя писать value=""?
...
Рейтинг: 0 / 0
Как переслать данные формы той же форме?
    #33333757
Фотография Sam Andrews
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуй так
Код: plaintext
<%TypeComboBox(Request.Form("type"))%>

у textarea нет value, там значение помещается между тегами, открывающим и закрывающим...

с уважением...
...
Рейтинг: 0 / 0
Как переслать данные формы той же форме?
    #33333786
Наташка 22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sam Andrewsу textarea нет value, там значение помещается между тегами, открывающим и закрывающим...
это получилось, спасибо
Sam Andrews<%TypeComboBox(Request.Form("type"))%>
а вот это и так тоже не работает :(
...
Рейтинг: 0 / 0
Как переслать данные формы той же форме?
    #33333814
RFT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для комбобокса - пиши
Код: plaintext
<%if mycombovalue=request.form("mycomovalue") then response.write("selected")%>
...
Рейтинг: 0 / 0
Как переслать данные формы той же форме?
    #33333823
Фотография Sam Andrews
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда так:
Код: plaintext
if trim(CStr(nname))=trim(CStr(defvalue)) then


с уважением...
...
Рейтинг: 0 / 0
Как переслать данные формы той же форме?
    #33335470
Наташка 22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sam Andrewsif trim(CStr(nname))=trim(CStr(defvalue)) then
так тоже не получается :(
...
Рейтинг: 0 / 0
Как переслать данные формы той же форме?
    #33335481
Наташка 22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
     Response.Write "<select  name=""type""><option value="""">" 
      While Not l_rstRecord.EOF
         nid = l_rstRecord("idtype")
         nname = l_rstRecord("type")
         if nname=request.form("type") then
			sel = "selected"
		 else
			sel = ""
		 end if
         Response.Write "<option value=" & nid & " " & sel & ">" & nname         
         l_rstRecord.MoveNext
      Wend

RFT, Вы имели в виду так? тоже не работает
...
Рейтинг: 0 / 0
Как переслать данные формы той же форме?
    #33335705
RFT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй заменить
Код: plaintext
1.
2.
3.
4.
5.
if nname=request.form("type") then
			sel = "selected"
		 else
			sel = ""
		 end if
         Response.Write "<option value=" & nid & " " & sel & ">" & nname   
на

Код: plaintext
1.
2.
3.
4.
5.
if nid=request.form("type") then
			sel = "selected"
		 else
			sel = ""
		 end if
         Response.Write("<option value=" & nid & " " & sel & ">" & nname & "</option>")

Так должно быть правильней.
...
Рейтинг: 0 / 0
Как переслать данные формы той же форме?
    #33335730
Наташка 22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RFT, да я как раз сейчас так сделала, только еще надо
Код: plaintext
if Cint(nid)=Cint(request.form("type")) then
все работает, только тогда получается что надо все комбобоксы для этой формы отдельно описывать с новыми именами, т.к. они используются на других формах и там должно быть как раз так:
Код: plaintext
 if trim(nname)=trim(defvalue) then
Как-то мне это не очень нравится. Может можно по-другому сделать?
...
Рейтинг: 0 / 0
Как переслать данные формы той же форме?
    #33335771
Наташка 22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще такая проблема:
если в комбобоксе контрактов выбирается первое (пустое) значение, то выдается ошибка, видимо, из-за Cint , а без него не работает.
...
Рейтинг: 0 / 0
Как переслать данные формы той же форме?
    #33335845
Наташка 22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если в комбобоксе контрактов выбирается первое (пустое) значение, то выдается ошибка, видимо, из-за Cint , а без него не работает.
вот так пока написала, вроде работает
Код: plaintext
1.
2.
3.
4.
  if Request.Form("contract")="" then
  	contract= 0 
  else
	contract=Request.Form("contract")
  end if
Насколько это грамотно? Вроде ид нулем быть не может.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как переслать данные формы той же форме?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]