使用AJAX发布数据然后检索JSON数组

时间:2017-01-10 08:25:05

标签: php json ajax

我正在尝试使用Ajax创建验证以检查我的数据是否已存在。它的工作原理,但现在我想在我的Ajax php文件中添加JSON并检索JSON内部的数组,遗憾的是它并没有像预期的那样工作。

看看下面我的JQuery:

$("#button").click(function(e) {
     e.preventDefault();
     var tempcode = $('#someobject').val();

    $.ajax({

        method:"POST",
        dataType: "text",
        url:'example.php',
        data:{
            Code: tempcode
            },
        success:function(data){
            var my = JSON.parse(data);
            alert(my.Title);
        }

    });
});

以下是example.php:

 $AJAXCode = $_POST['Code'];
 $myObj = array();



 $strSQL = mysql_query("select * from sometable where Code ='$AJAXCode'");
 $check = mysql_num_rows($strSQL);

 if ($AJAXCode == NULL) {
    $myObj->Title= "Choose Something";
    $myObj->Total = $check;

    $myJSON = json_encode($myObj);
    echo $myJSON;
 } else {
    if ($check != 0) {

        $myObj->Title= "Already Exist !";
        $myObj->Total = $check;

        $myJSON = json_encode($myObj);
        echo $myJSON;

    }   else {

        $myObj->Title= "You are good !!!";;
        $myObj->Total = $check;

        $myJSON = json_encode($myObj);
        echo $myJSON;           
    }
 }

正如您在我的JQuery脚本中看到的那样,我正在尝试调用" Title"在我的JSON数组中,但它不起作用。我错过了什么吗?

这是Console.log中的结果,没有错误显示:

enter image description here

3 个答案:

答案 0 :(得分:0)

首先,您以错误的方式初始化对象。使用以下$myObj = array();代替$myObj = (object) array(); or $myObj = new StdClass(); 之一:

dataType: "json"

有关更多信息和更多创建对象的方法,请查看this链接。

接下来,将dataType属性更改为:

JSON.parse()

为了告诉您的脚本您的PHP响应被编码为JSON。您可以使用console.log(JSON.parse(data)); 以常规方式立即使用您的回复,尝试:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "acceptMessageResponse", propOrder = {
    "acceptMessageReturn"
})
public class AcceptMessageResponse {

    @XmlElement(required = true)
    protected String acceptMessageReturn;

    public String getAcceptMessageReturn() {
        return acceptMessageReturn;
    }
    public void setAcceptMessageReturn(String value) {
        this.acceptMessageReturn = value;
    }
}

答案 1 :(得分:0)

替换以下代码:

$("#button").click(function(e) {
 e.preventDefault();
 var tempcode = $('#someobject').val();

$.ajax({

    method:"POST",
    dataType: "json",
    url:'example.php',
    data:{
        Code: tempkode
        },
    success:function(data){
        console.log(data.Title); // Example
    }

});
});

答案 2 :(得分:0)

将变量tempkode更改为数据中的tempcode