Приветствую! Может быть, ламерский вопрос и я туплю сегодня, но необходимо, чтобы у меня в форме сохранялись значения. Например, несколько INPUT-ов типа ТЕХТ, ухожу на проверку введёных значений. А при нажатии BACK (или javascript:history.back()) возвращаюсь на страницу, а поля уже пустые и приходится заново вбивать. Как решить сию проблему?
бэк не решит эту проблему. можно сохранять введенные данные и ури переходов в сессию, и возвращать назад не яваскриптовым бэком, а просто прямой ссылкой.
То есть, Код (Text): <input type="text" .... ... ... name="Line1" value="<?php echo $_SESSION['LINE1_Val']; ?>"> Образно так сделать? И при сабмите переприсваивать значения переменных сессии?
PHP: <?php $ok = $_POST['ok']; if (isset ($ok)) echo "Hello, ".$_POST['login']; echo " <form name='qwerty' method='post' action='?'> <input type='text' name='login' value='".$_POST['login']."'> <input type='submit' name='ok' value='Get now...'> </form> "; ?> Оно? У меня работает, во всяком случае
Нет, я по-другому сделал... В самом начале скрипта: Код (Text): if (!isset($_SESSION['FORM_Name'])) $_SESSION['FORM_Name'] = ''; А в самой форме: Код (Text): <input name="FORM_Name" type="text" size="30" maxlength="30" value="<?php echo $_SESSION['FORM_Name']; ?>"/> В обработчике формы: Код (Text): $tmpvar = @substr($_POST["FORM_Name"],0,30); $FORM_Name = $_SESSION['FORM_Name'] = htmlspecialchars(stripslashes($tmpvar), ENT_QUOTES); В таком варианте вроде работает. Всем спасибо! P.S. Единственная проблема в том, как сохранить значения DropDown-списков...
пишите их также в сессию, а на странице вешаете функцию на загрузку - проверить данные и выбрать нужные поля в селектах.
SkyKiller Честно говоря, не понимаю, зачем тут нужно использовать сессии. Если задача именно такая (чтобы при нажати в браузере на кнопку "Назад" в value остались значения)
Да, задача именно такая... Я не могу понять одного... Почему вот этот простейший пример PHP: <?php // Временно, для контроля ошибок ini_set('display_errors',1); error_reporting(E_ALL); if ($QUERY_STRING == "") { // Выводим форму для заполнения echo ' <form id="mainform" name="mainform" method="post" action="test.php?check"> <input name="FORM_Name" type="text" size="30" maxlength="30"/><br /> <input name="FORM_Day" type="text" size="2" maxlength="2"/><br /> <input type="submit" name="Submit" value="Отправить"/> </form> '; } else // CHECK if ($QUERY_STRING == "check") { echo "Вернитесь <a href=\"javascript:history.back()\">назад</a> и исправьте ошибки.<br />"; } // End CHECK ?> прекрасно работает, а более сложный (с переменными и прочими проверками полей на валидность) - не работает Весь моск уже сломал себе... В какой-то момент модернизации кода значения просто перестают сохраняться и всё... А в этом примере даже VALUE никакие строкам указывать не надо - и так сохраняет...