欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-04-18 13:21:24
...
自己做了一个项目,
使用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模拟代码也行,大家好帮你分析下哪里有错。

楼主最好把代码贴出来

相关标签: php 表单