Значение скрытого поля теряется после загрузки страницы в html - PullRequest
0 голосов
/ 25 августа 2011

Мне нужен сценарий, в котором я буду устанавливать какое-то значение скрытого поля на определенной странице.
Затем эта страница отправляется на сервер (форма отправки). Теперь я перенаправляю на другую страницу и снова пытаюсь получить значение, которое я установил ранее. Но я не получаю там значение, которое было установлено, вместо этого я получаю значение по умолчанию, которое я указал на самой html-странице. (Скрытое поле находится на главной странице, которая является общей для всех страниц моего веб-приложения).

Я попробовал фиктивное приложение, в котором я получаю значение скрытого поля даже после загрузки / обновления страницы после ее установки.

Ответы [ 4 ]

2 голосов
/ 25 августа 2011

Другие ответы здесь на самом деле верны (что HTML обычно не делает то, о чем вы его просили), но есть несколько вещей, которые вы можете сделать, чтобы заставить его работать.

Во-первых,как это обычно происходит: чтобы вторая страница получила правильное значение скрытого поля, вы должны обработать его в серверном компоненте.Похоже, вы перенаправляете на новую страницу в обработчике на стороне сервера.Лучший способ сделать это - обработчик значения на стороне сервера обработать значение и прикрепить его к перенаправлению в качестве параметра (вероятно, к строке запроса).Затем какой-нибудь серверный код сгенерирует вторую страницу, которая обработает параметр querystring.

Вот обходной путь для реализации чистого HTML / javascript :

Если вы не можете или не хотите иметь процесс на стороне сервера для генерации второгостранице, вы можете извлечь его из строки запроса, используя Javascript (просто найдите «получение переменных строки запроса в javascript»).

Если вы используете javascript, возможно (хотя, вероятно, не рекомендуется) иметь первыйФорма перейдите непосредственно на вторую страницу, установив ее как action формы с method из 'GET'.Определенно лучше включить обработчик на стороне сервера.

2 голосов
/ 25 августа 2011

Когда вы перенаправили своего пользователя на другую страницу, он стал reloaded .Если вы не решили установить значение для вашей формы (например, с помощью javascript), значение формы будет значением по умолчанию.

Значение, которое вы " установили ранее ", определенно не былосвязан с вводом, потому что каждый раз, когда вы перезагружаете страницу, ваш сервер снова генерирует HTML и значения по умолчанию, а ваш браузер отображает этот HTML.

Это поведение normal .

Кроме того, если вы хотите сохранить значения формы при отправке , вы можете использовать AJAX, отправив .

1 голос
/ 25 августа 2011

Вы неправильно понимаете, как работает HTTP - он не имеет состояния .

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

Вы должны явно установить сторону сервера значений до того, как она будет отправлена ​​клиенту.

1 голос
/ 25 августа 2011

То, что вы пытаетесь сделать, невозможно с помощью обычного HTML, так как HTML не имеет состояния. Вам нужно поместить ваши значения в сеанс или в cookie , и таким образом вы можете внедрить его на каждую загруженную страницу. Это невозможно сделать по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...