space2pacman
@space2pacman
Просто царь.

Как сделать обработку формы через ajax?

Добрый день!

У меня есть index.php который через include подключает register.php

Код register.php (c 104 по 175 строку)
if($error<2) {
  echo "
<br>
  <form name='register' action='index.php?page=register' method='post' onsubmit='return checkForm(this);'>

    <fieldset>
          <legend><b>Данные об аккаунте:</b></legend>				
    <table cellspacing=0 border=0 cellpadding=0 width=100%>
<tr>
  <td align=left>
<b><i>Аккаунт</i></b><br>(Введите имя аккаунта, длиной от 4 до 14 латинских букв и цифр): 
  </td>
  <td align=right>
<input type=text maxlength=14 name=account value=''>
</td>
  </tr>

  <tr>
  <td align=left>
<b><i>Пароль</i></b><br>(Пароль должен состоять не менее чем из 8 латинских букв и цифр): 
  </td>
  <td align=right>
<input type=password maxlength=16 name=password value=''>
</td>
  </tr>
  
  <tr>
  <td align=left>
<b><i>Повторите пароль</i></b>: 
  </td>
  <td align=right>
<input type=password maxlength=16 name=password2 value=''>
</td>
  </tr>

  <tr>
  <td align=left>
<b><i>E-mail</i></b> (Введите действующий e-mail адрес. Помните, что при восстановлении забытого пароля именно на этот e-mail придет новый пароль. Поддерживайте в работоспособности ваш e-mail): 
  </td>
  <td align=right>
<input type=text maxlength=50 name=email value=''>
</td>
  </tr>
    </table>
  </fieldset>
<br>
          
  <fieldset>
          <legend><b>Защита от автоматических регистраций:</b></legend>				
    <table cellspacing=0 border=0 cellpadding=0 width=100%>
<tr>
  <td align=left>
<b><i>Код на картинке</i></b><br>(Введите число, которое Вы видите на картинке. Если вы не видите картинку, включите в браузере отображение картинок.): 
  </td>
  <td align=right>
<img id='capchaimage' src='captha/index.php?PHPSESSID=' height='40' width='120'><br><br>
<input type=text name=keystring value=''>
</td>
  </tr>
</table> </fieldset>
<br><br>

    <div align=center>
      <BR>
      <input type=hidden name=register value='register'>
      <input type=submit name=submit value='Зарегистрировать'>


    </div>
  </form><br>
  ";
}


Как сделать чтобы форма обрабатывалась без перезагрузки страницы ? я попробовал 2-3 способа и пока без успешно. Либо никакой реакции либо страница все же перезагружается.
  • Вопрос задан
  • 455 просмотров
Решения вопроса 1
@iShatokhin
JS developer
$('form[name="register"]').submit(function(e){
	var $form = $(this);
	e.preventDefault();
	$.ajax({
		type: "POST",
		url: $form.attr("action"),
		data: $form.serialize(),
		success: function() {
			$form[0].reset();
		},
		error: function(jqXHR, textStatus, error) {
			console.log(error);
		}
	});
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@schurin
Люблю катать с гор, особенно на санках
В обработчике отправки формы вызываем
event.preventDefault()
что отменит дествие по умолчание(синхронную отправку)
и отправляем событие ajax'ом
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы