сохранение/вывод данных, введенных в форму после вывода ошибки
Здравствуйте, столкнулся с непреодолимой для меня проблемой. Казалось бы тривиальная задача, но... Ситуация такая: Нужно сохранять заполненные поля формы, если выдается ошибка. Перепробовал и готовые скрипты и сам пытался написать, не вышло. Может местные умельцы смогут помочь.
|
Цитата:
Создайте массив со значениями из полей и всегда сможете вернуть их в случае чего. |
какая ошибка ?
Заполняется форма, нажимается отправить. На сервере происходит ошибка, и после перезагрузки страницы вы видите пустые формы ? Тобишь форма отправляется на сервер post/get запросом без использования ajax ? Всё верно ??????????? Если да, то это проблема не клиента а сервера, jQuery тут не причём. пример php если его запустить то переменная comment из post запроса снова окажется в поле comment. <textarea name="comment" cols="40" rows="3"><?=$_POST['comment'] ?></textarea> Смотрите работа с формами на Php если используете php конечно, если пишите на другом языке ищите пример на него. |
Цитата:
<textarea name="comment" cols="40" rows="3"><?=$_POST['comment'] ?></textarea>, у меня админка коментит код вот таким образом: <!--?=$_POST['comment'] ?--> |
Движок какой, и куда именно вы встраиваете ?
|
Цитата:
|
johnsnow91, для начала сделайте валидацию полей (есть плагины для jquery) на javascript. Чтобы некорректная форма даже не смогла отправиться. Если не все можно проверить на клиенте - делайте ajax-запросы на сервер для валидации на сервере.
Далее, если есть желание и возможность, сделайте проверку полей на сервере (она вроде у вас уже есть), и если есть ошибки, прописывайте value полям формы значения из POST массива параметров. Так форма будет уже заполненной. Впринципе можно сделать только первое, или второе. Но лучше и то и это. |
Цитата:
|
Цитата:
|
<script src="http://code.jquery.com/jquery-latest.js"></script> <script> var memryForm; function copy(){ $("#copy").html(""); memryForm.clone().appendTo("#copy") } $(document).ready(function(){ memryForm=$("#form").clone(); $("#form *").on('change',function(){ memryForm=$("#form").clone(); }); }); </script> <form id="form" style="border:3px ridge #B6CEFB;padding:8px;"> <input type=text><Br> <input type=hidden value="1"><Br> <input type="radio" name="browser" value="firefox"> Firefox<Br> <input type="radio" name="browser" value="firefox"> Opera<Br> <p><select name="hero[]"> <option disabled selected>Выберите героя</option> <option value="Чебурашка">Чебурашка</option> <option value="Крокодил Гена">Крокодил Гена</option> </select></p> </form> <input type=button value="Получить Дубликат сохранённого" onclick="copy()" /><Br><Br> =============================== <div id=copy></div> |
Цитата:
Цитата:
Цитата:
Делается это так: $('#form').on('change', function() {..}) |
php введённый в редакторе очевидно не исполняется. Ищите плагин для форм, либо какойнибудь виджет который позволяет встраивать php прямо в контент.
Хотя есть альтернатива через ajax. |
<form id="contact-form" action="http://topazelectro.ru/files/sendmail/sendmail.php" method="post" enctype="multipart/form-data">
<fieldset style="width:760px"> <table> <tbody> <tr> <td><h2>Контактные данные</h2></td> </tr> <tr> <td><label><span class="text-form" style="color:#ff0000">*</span>ФИО:</label></td> <td><input name="p1" type="text"></td> </tr> <tr> <td><label><span class="text-form" style="color:#ff0000">*</span>Город</label></td> <td><input name="p2" type="text"></td> </tr> <tr> <td><label><span class="text-form" style="color:#ff0000">*</span>Организация:</label></td> <td><input name="p3" type="text"></td> </tr> <tr> <td><label><span class="text-form" style="color:#ff0000">*</span>Телефон:</label></td> <td><input name="p4" type="text"></td> </tr> <tr> <td><label><span class="text-form" style="color:#ff0000">*</span>E-mail:</label></td> <td><input name="p5" type="text"></td> </tr> <tr> <td><h2>Информация об изделии</h2></td> </tr> <tr> <td><label><span class="text-form" style="color:#ff0000">*</span>Полное наименование устройства:</label></td> <td><input name="p6" type="text"></td> </tr> <tr> <td><label><span class="text-form" style="color:#ff0000">*</span>ID-номер устройства:</label></td> <td><input name="p7" type="text"></td> </tr> <tr> <td><label><span class="text-form" style="color:#ff0000">*</span>Заводской номер устройства:</label></td> <td><input name="p8" type="text"></td> </tr> <tr> <td><label><span class="text-form"> Дата изготовления устройства:</span></label></td> <td><input name="p9" type="text"></td> </tr> <tr> <td><label><span class="text-form" style="color:#ff0000">*</span>Информация о требуемой прошивке или документация:</label></td> <td><input name="p10" type="text"></td> </tr> <tr> <td><label><span class="text-form" style="color:#ff0000">*</span>Причина перепрограммирования:</label></td> <td><input name="p11" type="text"></td> </tr> <tr> <td colspan="2"> <div class="wrapper"> <div class="text-form">Дополнительные сведения:</div> <div class="extra-wrap"> <textarea name="message"></textarea> <div cass="clear"></div> <div class="buttons" style="width:100%"> <table style="border:0px solid #000" width="100%"> <tbody> <tr> <td style="align:left;border:0px solid #000"> <a class="button-2" href="#" onclick="getElementById('contact-form').reset()"><img src="http://topazelectro.ru/img/formbutton2.PNG" onmousemove="this.src='http://topazelectro.ru/img/formbutton4.PNG'" onmouseout="this.src='http://topazelectro.ru/img/formbutton2.PNG'"></a> </td> <td style="align:right;border:0px solid #000;text-align:right"> <a class="button-2" href="#" onclick="getElementById('contact-form').submit()"><img src="http://topazelectro.ru/img/formbutton.PNG" onmousemove="this.src='http://topazelectro.ru/img/formbutton3.PNG'" onmouseout="this.src='http://topazelectro.ru/img/formbutton.PNG'"></a> </td> </tr> </tbody> </table> </div> </div> </div></td> </tr> </tbody></table><span style="color:#ff0000">*</span> - поля, обязательные для заполнения</fieldset> </form> Этот код у меня написан в редакторе в админке, если вставлять пхп в значение value или же просто между тегами <input> </input> в поле выводится просто код |
спокойствие, только спокойствие.
Дышим глубоко Повторяю ещё раз. Твой редактор верятно просто выплёвывает контент как текст, теги из текста исполнятся небудут, потому что текст это не код. Интерпритатор содержимое текстовых переменных будет всегда рассматрвать как текст, несмотря на то что в них написано. echo "<?='привет'>";выведет <?='привет'?> вместо привет. Потому что код это код, а текст это текст. Тобиш PHP засовывать в редактор бесполезно. Потому что всё содержимое видимо дальше будет рассматриваться как текст, включай твой php код. Аналогичная хренотень в joomla но там есть плагин если его поставить то между специальных тегов можно записывать php код, а ещё там есть различные компоненты для форм. Хотя между нами, всё это уродливое говно. Когда этого говна мало пишут свой плагин/компонент/модуль или что у вас там. Если для каждой страницы можно сделать свой шаблон как в modx или хотябы в wordpress, то вы можете попытаться форму в шаблон хотя бы засунуть. Ищите решение под свой движок, пошукайте на форуме своей cms. |
Цитата:
не дождался ответа, попробовал. Уже лучше, если писать <input name="p1" type="text" value="<? echo $_POST['p1'];?>">, то кода уже не видно, но и смодержимого нет. Если писать строку обычную после echo, то эта строка в инпуте отображается. |
Часовой пояс GMT +3, время: 10:10. |