Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   сохранение/вывод данных, введенных в форму после вывода ошибки (https://javascript.ru/forum/jquery/35678-sokhranenie-vyvod-dannykh-vvedennykh-v-formu-posle-vyvoda-oshibki.html)

johnsnow91 18.02.2013 15:25

сохранение/вывод данных, введенных в форму после вывода ошибки
 
Здравствуйте, столкнулся с непреодолимой для меня проблемой. Казалось бы тривиальная задача, но... Ситуация такая: Нужно сохранять заполненные поля формы, если выдается ошибка. Перепробовал и готовые скрипты и сам пытался написать, не вышло. Может местные умельцы смогут помочь.

tsigel 18.02.2013 15:32

Цитата:

Сообщение от johnsnow91
Ситуация такая: Нужно сохранять заполненные поля формы, если выдается ошибка.

Что это значит? Какая ошибка?

Создайте массив со значениями из полей и всегда сможете вернуть их в случае чего.

DjDiablo 18.02.2013 22:07

какая ошибка ?
Заполняется форма, нажимается отправить. На сервере происходит ошибка, и после перезагрузки страницы вы видите пустые формы ?
Тобишь форма отправляется на сервер post/get запросом без использования ajax ?

Всё верно ???????????

Если да, то это проблема не клиента а сервера, jQuery тут не причём.

пример php
если его запустить то переменная comment из post запроса снова окажется в поле comment.

<textarea name="comment" cols="40" rows="3"><?=$_POST['comment'] ?></textarea>


Смотрите работа с формами на Php если используете php конечно, если пишите на другом языке ищите пример на него.

johnsnow91 22.02.2013 15:09

Цитата:

Сообщение от DjDiablo (Сообщение 235394)
какая ошибка ?
Заполняется форма, нажимается отправить. На сервере происходит ошибка, и после перезагрузки страницы вы видите пустые формы ?
Тобишь форма отправляется на сервер post/get запросом без использования ajax ?

Всё верно ???????????

Если да, то это проблема не клиента а сервера, jQuery тут не причём.

пример php
если его запустить то переменная comment из post запроса снова окажется в поле comment.

<textarea name="comment" cols="40" rows="3"><?=$_POST['comment'] ?></textarea>


Смотрите работа с формами на Php если используете php конечно, если пишите на другом языке ищите пример на него.

Всё верно, но вот дело в том, что форма написана на HTML и когда я встраиваю
<textarea name="comment" cols="40" rows="3"><?=$_POST['comment'] ?></textarea>
, у меня админка коментит код вот таким образом: <!--?=$_POST['comment'] ?-->

DjDiablo 22.02.2013 16:14

Движок какой, и куда именно вы встраиваете ?

johnsnow91 25.02.2013 08:25

Цитата:

Сообщение от DjDiablo
Движок какой, и куда именно вы встраиваете ?

Движок - никому неизвестная active portal lite cms, редактор там стоит ckedit, вроде. Я в редакторе сделал форму и подключил к ней скрипт-обработчик на php. Могу и ссылку на сайт прислать, если здесь это не запрещено.

danik.js 25.02.2013 08:53

johnsnow91, для начала сделайте валидацию полей (есть плагины для jquery) на javascript. Чтобы некорректная форма даже не смогла отправиться. Если не все можно проверить на клиенте - делайте ajax-запросы на сервер для валидации на сервере.
Далее, если есть желание и возможность, сделайте проверку полей на сервере (она вроде у вас уже есть), и если есть ошибки, прописывайте value полям формы значения из POST массива параметров. Так форма будет уже заполненной.

Впринципе можно сделать только первое, или второе. Но лучше и то и это.

johnsnow91 25.02.2013 09:14

Цитата:

Сообщение от danik.js
Далее, если есть желание и возможность, сделайте проверку полей на сервере (она вроде у вас уже есть), и если есть ошибки, прописывайте value полям формы значения из POST массива параметров.

как раз вот это я и пробовал сделать и получается, что пхп код просто выводится в поле, вместо срабатывания

danik.js 25.02.2013 09:58

Цитата:

Сообщение от johnsnow91
пхп код просто выводится в поле, вместо срабатывания

ПХП код исполняется во всех файлах с расширением .php (по умолчанию). Или же через eval(). Видимо у вас ни то ни сё. Приведите проблемный участок кода - посмотрим.

Deff 25.02.2013 10:32

<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>


Часовой пояс GMT +3, время: 20:02.