当前位置:Gxlcms > PHP教程 > php如何处理ajax提交的表单?

php如何处理ajax提交的表单?

时间:2021-07-01 10:21:17 帮助过:16人阅读

自己做了一个项目,
使用jQuery的ajax模块发送数据到php页面中,
php页面使用$_POST['']接收数据,
返回的时候使用 echo json_encode($respond);
可是在ajax的success函数里打印返回的json数据不正常。
而且跳转也不正常,ajax是不会跳转页面的对吧,返回结果后,页面跳转一次到该页面(刷新)。

我是不是哪个环节出错了?
在线等。

jQuery:

$(function(){
    //登陆
    $("#button_signip").click(function(){

    });
    //注册
    $("#button_signup").click(function(){
        console.log($("#logup_inputUser").value);
        $.ajax({
            type: 'post',
            ulr: '../service/logupBusiness.php',
            async: false,
            data: $("#form_signup").serialize(),
            beforeSend: function () {

            },
            complete: function () {

            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                alert(XMLHttpRequest.status);
                alert(XMLHttpRequest.readyState);
                alert(textStatus);
            },
            success: function (data, textStatus) {
                console.log(data);//返回的结果不正常,并不是json
                console.log(textStatus);
                alert(data);
            }
        });
    });
});

php业务逻辑(logupBusiness.php):

register(array("username"=>$name, "password"=>$password, "email"=>$email));

    $res = $bmobUser->login($name,$password);
    echo json_encode($res);//返回结果,son
}catch (Exception $e){
    echo $e;
}

回复内容:

自己做了一个项目,
使用jQuery的ajax模块发送数据到php页面中,
php页面使用$_POST['']接收数据,
返回的时候使用 echo json_encode($respond);
可是在ajax的success函数里打印返回的json数据不正常。
而且跳转也不正常,ajax是不会跳转页面的对吧,返回结果后,页面跳转一次到该页面(刷新)。

我是不是哪个环节出错了?
在线等。

jQuery:

$(function(){
    //登陆
    $("#button_signip").click(function(){

    });
    //注册
    $("#button_signup").click(function(){
        console.log($("#logup_inputUser").value);
        $.ajax({
            type: 'post',
            ulr: '../service/logupBusiness.php',
            async: false,
            data: $("#form_signup").serialize(),
            beforeSend: function () {

            },
            complete: function () {

            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                alert(XMLHttpRequest.status);
                alert(XMLHttpRequest.readyState);
                alert(textStatus);
            },
            success: function (data, textStatus) {
                console.log(data);//返回的结果不正常,并不是json
                console.log(textStatus);
                alert(data);
            }
        });
    });
});

php业务逻辑(logupBusiness.php):

register(array("username"=>$name, "password"=>$password, "email"=>$email));

    $res = $bmobUser->login($name,$password);
    echo json_encode($res);//返回结果,son
}catch (Exception $e){
    echo $e;
}

  1. 提供你的 success 函数.

  2. 提供你后端在使用 echo json_encode($respond); 的结果.


根据你更新后的内容继续追问:

  1. 提供 ID 为 button_signup 的这个DOM节点的HTML代码.

  2. 提供 在请求logupBusiness.php这个PHP文件时, 后端输出的内容, 而不是提供你的这的这个PHP的源代码.

不过以你目前的代码, 猜测你的那个 button_signup 对应的可能是一个 type=submit 类型的按钮, 然后在点了之后, 提交了表单, 然后跳走了..

那必然是某个环节出了问题,不过从你提供的信息看不出哪里有问题。你可以注意一下json_encode结果是否正常,js里是否还有其他方法处理了结果。

$.ajax
success:function(callback){alert(callback)},

php:
echo json_encode($str,JSON_FORCE_OBJECT);

不贴代码出来大家都帮不了你呢,如果比较隐私,可以贴个demo模拟代码也行,大家好帮你分析下哪里有错。

楼主最好把代码贴出来

人气教程排行