Как сделать регистрацию на ajax?

Привет, прошу вас помочь мне с реализацией регистрации на ajax.

<div id="result"></div>
<form method="post" id="registration" action="/?do=registration" onSubmit="return form(this.name.value,this.email.value,this.password.value,this.password_rep.value)">
<p id="error"></p>
<p>Имя *: <input type="text" name="name" id="name" required /></p>
<p>Фамилия: <input type="text" name="surname" /></p>
<p>E-mail *: <input type="email" name="email" id="email" onChange="emailcheck()" required /><span id="email_status"></span></p>
<p>Пароль *: <input type="password" name="password" id="password" onChange="pass()" required /></p>
<p>Подтверждение пароля *: <input type="password" name="password_rep" id="password_rep" onChange="pass()" required /><span id="pass_status"></span></p>
<p>Пол *: <input type="radio" name="sex" value="1" checked>Мужской
		   <input type="radio" name="sex" value="2">Женский
</p>
<p>Дата рождения *:
	<?php
	//день//
	 echo '<select name="day">';
	 for ($i=1;$i<=31;$i++) {
		 echo '<option value="'.$i.'">'.$i.'</option>';
	 }
	 echo '</select>';
	 //месяц//
	  echo '<select name="month">';
	 for ($i=1;$i<=12;$i++) {
		 echo '<option value="'.$i.'">'.$i.'</option>';
	 }
	 echo '</select>';
	//год//
	 echo '<select name="year">';
	 $year=date("Y");
	 echo '<option value="'.$year.'">'.$year.'</option>';
	 for ($i=0;$i<60;$i++) {
		 $year=$year-1;
		 echo '<option value="'.$year.'">'.$year.'</option>';
	 }
	 echo '</select>';
    ?>
</p> 
<p><input type="submit" value="Зарегистрироваться" class="register" /></p>
</form>

При субмите нужно сделать вывод ответа в html.

Вот мои наработки в jquery (есть ошибки)
$("#registration").submit(function () {
	$.post({
		url: '/?do=registration',
		success: function(data) {
			$("#result").html(data);
		}
	});
});

Помогите пожалуйста :)
  • Вопрос задан
  • 2750 просмотров
Пригласить эксперта
Ответы на вопрос 1
@kazin8
$.ajax({
   type: "POST",
   url: "/?do=registation",
   dataType: "json", // Тут смотря какой ответ хотите получить
   data: {login_var : login, password_var: password},
   success: function(result) {
      $("#result").html(result);
  }
});

login и password - это то, что вы отпарсите в js (val() ваших полей)
login_var и password_var - это то, что придет к Вам в php скрипт. Забирать как $_POST['login_var]....
Стоит обратить внимание, что ajax асинхронно выполняет страницу, которая находится в url, и все, что с этой страницы идет в поток вывода (echo) возвращается Вам в result. Так что, если на Вашей registration странице есть вывод раньше, чем вы обработаете данный вызов и сделаете exit, то есть шанс собрать в result все ваши echo. Вообщем, забрать значения полей в js переменные, я думаю, вы и сами сможете. Пример ajax запроса я привел.
P.S. Старайтесь в будущем пользоваться кратким синтаксисом для формирования шаблонов, если уж вы мешаете html и php

<?$year=date("Y");?>
<option value="<?=$year?>"><?=$year?></option>
<?for ($i=0;$i<60;$i++){?>
     <?$year--;?>
     <option value="<?=$year?>"><?=$year?></option>
<?}?>


Если будете держать хотя бы в таком виде, он станет намного милее, особенно во всевозможных IDE. Если в итоге не получится что-то - пишите, буду помогать дальше.
Прошу прощения за комментарии, что-то я сегодня устал)
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы