我正在尝试使用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中的结果,没有错误显示:
答案 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