Демо-поиск...    

...




... / Форум / Web-разработка / AJAX /

Проверка формы перед отправкой




Аватар игрока WolfWolf Администратор
Сообщений: 1992 | Зарегистрирован: 15 Июня 2005
В субботу, 3 Июня 2006 [9:58] написал [URL] [цитировать]

Предлагаю технологию проверки данных из форм перед их окончательной отправкой.

Привожу основные узлы скрипта:
Код
_1  <script type="text/javascript">
_2  //<![CDATA[
_3  function checkform()
_4  {
_5   document.getElementById('urltosend').action="addmess2.php";
_6   document.forms['addform'].target="process";
_7   top.document.forms['addform'].submit();
_8  }
_9  //]]>

10  </script>
11 ...
12 <form id="urltosend" name="addform" method="post" action="addmess.php">
13 ...
14 <input type="button" onclick="checkform()" value="Отправить данные">
15 ...
16 <iframe name="process" id="process" width="0" height="0" style="visibility: hidden"></iframe>
17 ...
18 <div id="alerts"></div>
Описание вышеприведённого. Имеем некоторую форму. Вместо её сабмита выполняем скрипт "checkform()". Этот скрипт отправляет содержимое формы в "нулевой" (невидимый) ифрэйм "process", на обработку скрипту "addmess2.php".

Скрипт "addmess2.php" может быть приблизительно следующего содержания:
Код
_1 <?php
_2 /*Проверяем полученные данные и все найденные ошибки добавляем в переменную $alerts - например:
_3 $alerts.="Ошибка1<br />";
_4 $alerts.="Ошибка2<br />";
_5 и так далее.
_6 
_7 После чего в зависимости от результата выводим сообщение в <div id="alerts"></div> и, если предупреждений нет - отправляем форму в основной скрипт-получатель "addmess.php"
_8 */

_9 
10 print '<script type="text/javascript">'."n";
11 print '//<![CDATA['."n";
12 if ($alerts)
13 {
14  print "top.document.getElementById('alerts').innerHTML='".$alerts."<br />';"."n";
15 }
16 else
17 {
18  print "top.document.getElementById('alerts').innerHTML='Предварительная проверка пройдена!<br /><br />';"."n";
19  print "top.document.getElementById('urltosend').action='addmess.php';"."n";
20  print "top.document.forms['addform'].target='_top';"."n";
21  print "top.document.forms['addform'].submit();"."n";
22 }
23 print '//]]>'."n";
24 print '</script>'."n";
Если есть любые вопросы - готов ответить.

Добавить сообщение

  Wolf' Ware 2004-2010 © Wolf