Я нашел учебник здесь: http://tutorialzine.com/2009/08/creating-a-facebook-like-registration-form-with-jquery/ (пожалуйста, посмотрите)
Это хороший учебник, я следил за всем там и удалял лишние вещи, которые мне не нужны, например, functions.php с generate_function option , так как мне не нужны вещи на день рождения и т. Д.
Все, что мне нужно, это ИМЯ (имя пользователя), EMAIL (электронная почта), Пароль (пароль), когда пользователь нажимает кнопку «РЕГИСТРАЦИЯ» (которая является кнопкой отправки формы), скрипт, полученный из этого руководства, отправит данные передаются в "regprocess.php", который содержит проверочные коды проверки, такие как проверка, являются ли данные отправленной формы пустыми.
Но когда я нажимаю REGISTER, данные не отправляются обратно (сообщение об ошибке) из "regprocess.php" и сообщения об успехе.
Когда я проверяю с помощью своего firebug, ответ JSON показывает полный код php, как показано ниже (прокрутите вниз).
Вот мой код:
HTML-
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js">
</script>
<script type="text/javascript" src="register.js"></script>
<form id="regForm" action="regprocess.php" method="post">
<label for="usrname">Name:</label>
<input id="usrname" name="usrname" type="text" value="" class="nor">
<label for="email">Email:</label>
<input id="email" name="email" type="text" value="" class="nor">
<label for="password">Password:</label>
<input id="password" name="password" type="password" value="" class="nor">
<table><tr><td style="width:290px;"><div id="error"> </div></td><td><input name="register" type="submit" value="Register" id="regbtn"><center><img id="loading" src="images/load.gif" alt="Registering..." /></center></td></tr></table>
</form>
Хорошо, скрипт Ajax находится в "register.js" выше.
Ajax-скрипт (register.js) -
$(document).ready(function(){
$('#regForm').submit(function(e) {
register();
e.preventDefault();
});
});
function register()
{
hideshow('loading',1);
hideshow('regbtn',0);
error(0);
$.ajax({
type: "POST",
url: "regprocess.php",
data: $('#regForm').serialize(),
dataType: "json",
success: function(msg){
if(parseInt(msg.status)==1)
{
window.location=msg.txt;
}
else if(parseInt(msg.status)==0)
{
error(1,msg.txt);
}
hideshow('loading',0);
hideshow('regbtn',1);
}
});
}
function hideshow(el,act)
{
if(act) $('#'+el).css('visibility','visible');
else $('#'+el).css('visibility','hidden');
}
function error(act,txt)
{
hideshow('error',act);
if(txt) $('#error').html(txt);
}
CSS:
Regbtn - кнопка отправки, видимость установлена на видимость
загрузка отключена
ошибка установлена скрытой
Когда пользователь нажимает на Regbtn, видимость загрузки становится видимой, а Regbtn скрывается (видимость: скрытая).
Это делается в скрипте Ajax (register.js).
Хорошо, теперь php:
PHP (regprocess.php) -
if(empty($_POST['usrname']) || empty($_POST['email']) || empty($_POST['password']))
{
die('{status:0,"txt":"Fill in All Fields"}');
}
if(!(preg_match("/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $_POST['email'])))
die('{status:0,"txt":"Please Provide a Valid Email"}');
echo '{status:1,txt:"registered.html"}';
Это проверяет, являются ли данные имени пользователя, электронной почты и пароля пустыми, если да, возвращает сообщение, которое будет отображаться в сообщении об ошибке (#error в html), а также проверяет, является ли предоставленное сообщение электронной почты действительным.
Если все остальное верно, пользователь будет перенаправлен на istered.html
Но я думаю, что скрипт не может получить сообщение об ошибке от php.
Я надеюсь, что кто-то может мне помочь. Благодарю.
Хорошего дня.