как имитировать клик Back

Программирование на Active Server Pages и VBScript.
abbot
Обычный пользователь
Обычный пользователь
 
Сообщения: 54
Зарегистрирован: 08.06.2002 (Сб) 10:45
Откуда: Uzbekistan

как имитировать клик Back

Сообщение abbot » 19.07.2005 (Вт) 10:35

Проблема вот в чем. При заплнении формы должна стоять проверка на требуемые поля. Если поля не заполнены то проиходит редирект назад; если все как надо то идем на страницу вперед. Вообщем проверка работает, но как сделать так что бы при ошибке в каком либо поле происходил редирект на страницу назад без потери данных заполненных в форме. Что бы юзеры не теряли инфу о том что уже заполнили.
При клике в браузере Back происходит примерно то что нужно. Перевод назад на страницу без потери данных в заполненных полях. Отсюда и возник вопрос а как сделать такой же редирект программно.
He is watching

Scuder
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 334
Зарегистрирован: 17.08.2002 (Сб) 13:18
Откуда: Moscow, Russia

Сообщение Scuder » 19.07.2005 (Вт) 19:49

Код: Выделить всё
Response.redirect "/xxx.asp"
:?:

abbot
Обычный пользователь
Обычный пользователь
 
Сообщения: 54
Зарегистрирован: 08.06.2002 (Сб) 10:45
Откуда: Uzbekistan

Сообщение abbot » 20.07.2005 (Ср) 8:22

Нет такой подход не подойдет. Данный редирект просто перенаправит на страницу с новой ее загрузкой и следовательно потерей информации.
He is watching

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 20.07.2005 (Ср) 10:12

Код: Выделить всё
<script>document.history.back(-1);</script>
вроде
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

abbot
Обычный пользователь
Обычный пользователь
 
Сообщения: 54
Зарегистрирован: 08.06.2002 (Сб) 10:45
Откуда: Uzbekistan

Сообщение abbot » 21.07.2005 (Чт) 10:04

у меня код на VBScript по всей странице. В java к сожалению не силен. Вообщем попробовал вставить жтот код но дается ошибка
Document.history is null or not an object

Что делать?
He is watching

FaKk2
El rebelde gur&#250;
El rebelde gur&#250;
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 21.07.2005 (Чт) 20:08

abbot
Собсно мог и порыть в этом направлении :?

Попробуй:
Код: Выделить всё
<script>history.back(-1);</script>
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

OldRunaways
Новичок
Новичок
Аватара пользователя
 
Сообщения: 44
Зарегистрирован: 10.07.2004 (Сб) 17:13

Сообщение OldRunaways » 28.07.2005 (Чт) 16:56

Если уж совсем по АСП-шному, то так:
Код: Выделить всё
Response.Write "<script language=""JavaScript"">history.back(-1)</script>"
Response.End
:wink:

abbot
Обычный пользователь
Обычный пользователь
 
Сообщения: 54
Зарегистрирован: 08.06.2002 (Сб) 10:45
Откуда: Uzbekistan

Сообщение abbot » 30.07.2005 (Сб) 10:41

Сработало. Спасибо
He is watching

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 06.08.2005 (Сб) 14:07

Код: Выделить всё
<FORM>
<%
If request("Field1")="" then WriteErr "Поле 1 не зполнено"
%>
<INPUT name="Field1"><BR>
<%
If request("Field2")="" then WriteErr "Поле 2 не зполнено"
%>
<INPUT name="Field2"><BR>
<%
If request("Field3")="" then WriteErr "Поле 3 не зполнено"
%>
<INPUT name="Field3"><BR>
<INPUT type="submit">
</FORM>
<%
Sub WriteErr(ErrDescription)
%><B><%=ErrDescription %></B><BR><%
End Sub
%>


Хм.... Вот брат - накропал тебе такую тему. Кинь это в любую ASP и запусти. :roll:

Может тебе так удобнее будет. :roll: :idea:

Рома
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 28.10.2005 (Пт) 16:04

Сообщение Рома » 28.10.2005 (Пт) 17:35

Наиболее приемлемый вариант для сохранения введенных данных:

1. Использовать переменные Session()
в обработчике:
Session("field1") = Request.Form("field1")
Session("field2") = Request.Form("field2")

2. Использовать один файл, как обработчик и форму

Код: Выделить всё
<HTML>
<bpdy>
<%
if Len(Request.Form)>0 then
  ' ... обработка принятых данных, проверка на сервере
  '
  ' лучше всегда проверять длинну строки, а не приравнивать ее к ""
  ' good: if Len(Request.Form("field1"))>0 then OK else NOTOK end if
  ' bad: if Request.Form<>"" then OK else NOTOK end if
end if
%>
<form method="post" action="work.asp">
<input type="text" name="field1" value="<%=Request.Form("field1")%>">
<input type="text" name="field2" value="<%=Request.Form("field2")%>">
<input type="Submit" value="Отправить">
</form>
</body>
</HTML>


Обрати внимание на значение полей и ссылку формы на обработчик
В данном случае сохраняются переменные формы field1 и field2 если пользователь отправляет форму первый раз. При открытии страницы, естессно поля пустые, т.к. никаких данных сохранять пока не пришлось. Обработчик назван work.asp, т.е. файл нужно сохранить именно под именем work.asp


Вернуться в ASP и VBScript

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14

    TopList