Heim  >  Artikel  >  Backend-Entwicklung  >  php如何处理ajax提交的表单?

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

WBOY
WBOYOriginal
2016-06-06 20:25:171651Durchsuche

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

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

jQuery:

<code>$(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);
            }
        });
    });
});</code>

php业务逻辑(logupBusiness.php):

<code><?php /**
 * Created by PhpStorm.
 * User: alpha
 * Date: 15/10/31
 * Time: 00:57
 * Description: 注册业务逻辑
 */
require '../bmob.lib.php';
$name = $_POST['name'];
$email = $_POST['email'];
$password = $_POST['password'];
$confirmPassword = $_POST['confirmPassword'];

//主要业务逻辑
try{
    $bmobUser = new BmobUser();
    $res = $bmobUser->register(array("username"=>$name, "password"=>$password, "email"=>$email));

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

回复内容:

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

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

jQuery:

<code>$(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);
            }
        });
    });
});</code>

php业务逻辑(logupBusiness.php):

<code><?php /**
 * Created by PhpStorm.
 * User: alpha
 * Date: 15/10/31
 * Time: 00:57
 * Description: 注册业务逻辑
 */
require '../bmob.lib.php';
$name = $_POST['name'];
$email = $_POST['email'];
$password = $_POST['password'];
$confirmPassword = $_POST['confirmPassword'];

//主要业务逻辑
try{
    $bmobUser = new BmobUser();
    $res = $bmobUser->register(array("username"=>$name, "password"=>$password, "email"=>$email));

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

  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模拟代码也行,大家好帮你分析下哪里有错。

楼主最好把代码贴出来

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn