Jquery form или отслыка POST без обновления страницы
Для реализации сего необходимо подключить плагин jquery.form к своему проекту. Как использовать? Вот пример (взято из проекта ГдеМои):
Оформление формы:
1 2 3 4 5 6 7 8 9 |
<form id="myForm" class="well" ENCTYPE="multipart/form-data" action="controller/saveimei.php" method="post" name="myForm" target="_self"> <label>Название маячка</label> <input name="dvname" id="dvname" type="text" class="span12" placeholder="Как будем его называть?"> <label>Его IMEI</label> <input name="imeicode" id="imeicode" type="text" class="span12" placeholder="IMEI код устройства"> <p align="center"> <button type="submit" class="btn">Сохранить</button> </p> </form> |
JavaScript который обрабатывает отсылку POST:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<script> $(document).ready(function() { // навесим на форму 'myForm' обработчик отлавливающий сабмит формы и передадим функцию callback. $('#myForm').ajaxForm(function(msg) { if (msg!="ok"){ alert("Ошибка!"); } else { alert("Все Ок!"); }; }); }); </script> |
Серверная часть (saveimei.php):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// сначала правда проверяем, а если что в запросе POST из формы if (isset($_POST["dvname"])) {$dvname=$_POST["dvname"];} else {$dvname="";} if (isset($_POST["imeicode"])) {$imeicode=$_POST["imeicode"];} else {$imeicode="";} // если чегото не хватает, посылаем на йух... if (($imeicode=="") or ($dvname=="")){echo "Не заполнены значения имени устройства или его imei<br>";} else { // тут еще проверяем, а вдуг такой imei уже есть в базе? $m=new Tmayaks; $m->GetByImei($imeicode); if ($m->id!="") {echo "Устройство с таким IMEI уже зарегистрированно в системе!<br>";} else // все, теперь точно добавляем! { $m->imei=$imeicode; $m->name=$dvname; $m->userid=$user->id; $m->Add(); echo "ok"; } } |