Ajax表单、PHP进程和返回错误(如果存在';如果不是成功的话,那还有什么呢

Ajax表单、PHP进程和返回错误(如果存在';如果不是成功的话,那还有什么呢,php,jquery,ajax,Php,Jquery,Ajax,我在这里找到了一个教程:(请看一看) 这是一个很好的教程,我遵循了那里的所有内容,删除了我不想要的额外内容,比如functions.php和generate_function option,因为我不需要生日等内容 我只需要一个名称(usrname)、电子邮件(EMAIL)、密码(Password),当用户单击“注册”按钮(即表单提交按钮)时,我从教程中获得的脚本将数据发送到“regprocess.php”,其中包含验证检查代码,如检查提交的表单数据是否为空 但是,当我单击REGISTER时,数据

我在这里找到了一个教程:(请看一看)

这是一个很好的教程,我遵循了那里的所有内容,删除了我不想要的额外内容,比如functions.php和generate_function option,因为我不需要生日等内容

我只需要一个名称(usrname)、电子邮件(EMAIL)、密码(Password),当用户单击“注册”按钮(即表单提交按钮)时,我从教程中获得的脚本将数据发送到“regprocess.php”,其中包含验证检查代码,如检查提交的表单数据是否为空

但是,当我单击REGISTER时,数据既不会从“regprocess.php”返回(错误消息),也不会从成功消息返回。
当我检查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"}';
?>