Ajax表单、PHP进程和返回错误(如果存在';如果不是成功的话,那还有什么呢
我在这里找到了一个教程:(请看一看) 这是一个很好的教程,我遵循了那里的所有内容,删除了我不想要的额外内容,比如functions.php和generate_function option,因为我不需要生日等内容 我只需要一个名称(usrname)、电子邮件(EMAIL)、密码(Password),当用户单击“注册”按钮(即表单提交按钮)时,我从教程中获得的脚本将数据发送到“regprocess.php”,其中包含验证检查代码,如检查提交的表单数据是否为空 但是,当我单击REGISTER时,数据既不会从“regprocess.php”返回(错误消息),也不会从成功消息返回。Ajax表单、PHP进程和返回错误(如果存在';如果不是成功的话,那还有什么呢,php,jquery,ajax,Php,Jquery,Ajax,我在这里找到了一个教程:(请看一看) 这是一个很好的教程,我遵循了那里的所有内容,删除了我不想要的额外内容,比如functions.php和generate_function option,因为我不需要生日等内容 我只需要一个名称(usrname)、电子邮件(EMAIL)、密码(Password),当用户单击“注册”按钮(即表单提交按钮)时,我从教程中获得的脚本将数据发送到“regprocess.php”,其中包含验证检查代码,如检查提交的表单数据是否为空 但是,当我单击REGISTER时,数据
当我检查firebug时,JSON响应显示完整的php代码,如下所示(向下滚动)。 这是我的密码: HTML- CSS: Regbtn是提交按钮,其可见性设置为可见 加载设置为隐藏 错误设置为隐藏 当用户单击Regbtn时,加载可见性将变为可见,而Regbtn将隐藏(可见性:隐藏) 它是在Ajax脚本(register.js)中完成的 好的,现在php: PHP(regprocess.PHP)- 这将检查用户名、电子邮件和密码数据是否为空,如果为空,则返回将显示在错误中的消息(#html中的错误),还将检查提供的电子邮件是否有效 如果其他一切正常,用户将被定向到registed.html 但是我认为脚本无法从php返回错误消息 我希望有人能帮助我。谢谢
祝你度过愉快的一天。嗯,答案不多,但我在表单上所做的是通过ajax提交,并将php页面的结果放在表单的父级中。 下面是代码中的插件。默认情况下,当窗体是div的子级时,它会工作
(function($){
$.fn.extend({
//pass the options variable to the function
ajaxForm: function(options)
{
//Set the default values, use comma to separate the settings, example:
var defaults =
{
target: 'div'
}
var options = $.extend(defaults, options);
return this.each(function()
{
var o=options
$(this).submit(function(event)
{
event.preventDefault();//stop from submiting
//set needed variables
var $form = $(this)
var $div = $form.parent(o.target)
$url = $form.attr("action");
//submit via post and put results in div
$.post( $url, $form.serialize() , function(data)
{ $div.html(data) })
})
});
}
});
})(jQuery);
请注意,这将对每个表单运行,因此可以根据需要进行更改。
无论您想显示什么,只需在php页面上显示echo即可。这也是为post设计的,php页面将访问任何内容,就像post中的任何其他表单一样。
另外,如果您觉得有必要改为以json的形式发送,也不难修改。您需要在php代码周围放置php标记,如下所示:
<?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"}';
?>
答案是什么?答案在哪里?jSON答案。。啊!你在firebug中看到了什么?JSON响应显示的是完整的PHP代码,而不是状态,例如:{status:0,“txt”:“Fill in All Fields”}这不是完整的PHP代码,这是答案……是的,这是我的完整PHP代码,看看教程,它是一样的,我只是取出了生日和一些。它将通过包含它然后运行$('selector').ajaxForm()它将输出您在php页面上回送的任何内容。例如,如果您想要一条错误消息。回送“用户名已被占用”;将编写任何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"}';
(function($){
$.fn.extend({
//pass the options variable to the function
ajaxForm: function(options)
{
//Set the default values, use comma to separate the settings, example:
var defaults =
{
target: 'div'
}
var options = $.extend(defaults, options);
return this.each(function()
{
var o=options
$(this).submit(function(event)
{
event.preventDefault();//stop from submiting
//set needed variables
var $form = $(this)
var $div = $form.parent(o.target)
$url = $form.attr("action");
//submit via post and put results in div
$.post( $url, $form.serialize() , function(data)
{ $div.html(data) })
})
});
}
});
})(jQuery);
<?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"}';
?>