Ajax:返回null值

时间:2017-03-10 07:35:37

标签: php jquery ajax

我有一个表单来插入用户。我使用POST方法和存储过程。将根据插入的数据自动调用ReturnStatusReturnMessage

在插入数据之前,我遇到了一些错误,因为ajax返回null值。但是当表单填写完毕并提交其工作完全正确并设法显示成功操作的结果时。

这是我的代码:

php

if(isset($_POST['submit']))
{

    $UserNm=$_POST["UserNm"];
    $UserId=$_POST["UserId"];
    $UserPwd=$_POST["UserPwd"];

    $stmt = odbc_exec(
        $conn,
        "CALL UserInsert (
            '$UserNm',
            '$UserId',
            '$UserPwd',)"
        );

    if (!$stmt) {
        "Error : " . odbc_errormsg();
    }

    if ($stmt) {
        if (odbc_fetch_row($stmt)) {
            $ReturnStatus=odbc_result($stmt,'ReturnStatus');
            $ReturnMessage=odbc_result($stmt,'ReturnMessage');
        }

        if(isset($ReturnStatus) && $ReturnStatus==1) {
            $ReturnMessage=odbc_result($stmt,'ReturnMessage');
        } 
    }
}

echo json_encode($ReturnMessage);

?>

脚本

<script>
    $.ajax({
      url: "insert_sp.php",
      dataType: "json", 
      success: function(data){ 
        alert(data.test);
      }
    });
</script>

请帮帮我。谢谢:))

2 个答案:

答案 0 :(得分:1)

您正在检查POST请求类型:

if(isset($_POST['submit']))

当您的ajax发送GET请求时,请详细了解如何使用ajax和jquery POST

<script>
    $.ajax({
      url: "insert_sp.php",
      method: "POST",
      data: {submit: 'true'},
      success: function(response) {
        // while you are expecting a json response
        // so you will need to decode it .
        var data = JSON && JSON.parse(response) || $.parseJSON(response);
        alert(data);
      }
    });
</script>

答案 1 :(得分:1)

检查您的$ReturnMessage对象是否为UTF-8编码,因为json_encode仅处理UTF-8编码数据。 您可以使用HeidiSQL测试编码,并使用http://php.net/manual/de/function.mb-detect-encoding.php

进行更改

@see:http://php.net/manual/de/function.utf8-encode.php

  

所有字符串数据必须采用UTF-8编码。

json_encode行之前添加此行:

$ReturnMessage = utf8_encode ( $ReturnMessage );