Консультация № 51914
12.08.2006, 06:10
0.00 руб.
0 3 3
Здравствуйте, експерты!
Вопрос назрел об оптимальной реализации.
Есть страница гостевой, в которую выводятся сообщения и форма для добавления нового сообщения. Есть также обработчик формы.
Обработчик проверяет введённые пользователем данные и либо производит запись в базу, либо выводит сообщение об ошибке. При ошибке в форму передаются введённые пользователем даннные и сообщение об ошибке. При успешном занесении записи все данные в форме обнуляются.
Если сделать форму и её обработчик в разных файлах, то возникает проблема передачи в форму старых значений и сообщений об ошибках. Их можно конечно передать GET запросом, но при этом возникают корявые ссылки, что совсем не есть гут.
Отличный выход - сделать форму и обработчик физически в одном файле, при этом все данные передаются внутренними переменными. Но при этом возникает другая проблема. А именно, если пользователю запретили добавить сообщение, и он нажимает на кнопку "очистить", то форма не становится пустой, а в ней появляются введённые им значения. Можно ли как-то настроить кнопку на полную очистку формы при любых обстоятельствах?

Обсуждение

Неизвестный
12.08.2006, 09:02
общий
это ответ
Здравствуйте, Rok-set!

Вы можете очистить форму через JavaScript:


Приложение:
<form name=MyForm><input type=text name=Email value="..."><input type=reset onclick="document.MyForm.Email.value=‘‘; return false;"></form>
Неизвестный
12.08.2006, 09:24
общий
это ответ
Здравствуйте, Rok-set!

Могу предложить вариант через Java-script

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>

<body>
<form name="form1" id = "form1" method="post" action="primer.php">
<p>
<input name="A" type="text" id="A" value="">
</p>
<p>
<input name="B" type="text" id="B" value="">
</p>
<p>
<input type="submit" name="Submit" value="Submit">
<input type="reset" name="Submit2" value="Reset">
</p>
</form>

language="JavaScript" type="text/JavaScript">
document.form1.A.value = "<?php Значение для первого поля ?>";
document.form1.B.value = "<?php Значение для второго поля ?>";
</script>

</body>
</html>

+ Просто
- Не работает без JS

Ещё один вариант - вместо кнопки RESET сделать ещё одну кнопку SUBMIT но с другим именем. При нажатии на кнопку в запрос будет добавлена строка
"имя_кнопки=value_кнопки", по которой можно различать две разные кнопки submit

Соответственно при нажатии второй кнопки отправить пользователю пустую форму.
Неизвестный
14.08.2006, 10:23
общий
это ответ
Здравствуйте, Rok-set!
Вам надо навесить на кнопку JavaScript очиски формы вместо простого reset.
Форма ответа