Php 使用AJAX发布数据,然后检索JSON数组的值
我正在尝试创建一个验证来检查我的数据是否已经存在或者没有使用Ajax。这是可行的,但现在我想在我的Ajax php文件中添加JSON并检索JSON中的数组,不幸的是,它没有按预期工作 请看下面我的JQuery:Php 使用AJAX发布数据,然后检索JSON数组的值,php,json,ajax,Php,Json,Ajax,我正在尝试创建一个验证来检查我的数据是否已经存在或者没有使用Ajax。这是可行的,但现在我想在我的Ajax php文件中添加JSON并检索JSON中的数组,不幸的是,它没有按预期工作 请看下面我的JQuery: $("#button").click(function(e) { e.preventDefault(); var tempcode = $('#someobject').val(); $.ajax({ method:"POST",
$("#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脚本中看到的,我试图在JSON数组中调用“Title”,但它不起作用。我错过什么了吗
这是Console.log中的结果,不会显示任何错误,只显示以下内容:
首先,您以错误的方式初始化对象。使用而不是
$myObj=array()代码>以下选项之一:
$myObj = (object) array();
or
$myObj = new StdClass();
有关创建对象的更多信息和方法,请查阅链接
接下来,将属性更改为:
dataType: "json"
为了告诉脚本您的PHP响应被编码为JSON。现在,您可以使用常规方式使用响应,使用JSON.parse()
,尝试:
console.log(JSON.parse(data));
首先,以错误的方式初始化对象。使用而不是$myObj=array()代码>以下选项之一:
$myObj = (object) array();
or
$myObj = new StdClass();
有关创建对象的更多信息和方法,请查阅链接
接下来,将属性更改为:
dataType: "json"
为了告诉脚本您的PHP响应被编码为JSON。现在,您可以使用常规方式使用响应,使用JSON.parse()
,尝试:
console.log(JSON.parse(data));
替换以下代码:
$("#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
}
});
});
替换以下代码:
$("#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
}
});
});
将变量tempkode更改为数据中的tempcode将变量tempkode更改为数据中的tempcode什么不起作用?你有javascript错误吗?您是否收到了包含某些内容的警报?不,甚至没有警报。请查看浏览器的开发人员工具,确保请求返回正确的值。注释掉警报并分析行,然后添加console.log(data)
,看看您得到了什么。如果没有,则添加一个方法error:function..
,就像success
方法一样,然后查看输出结果。@DainisTools控制台日志显示:传递给getElementById()的空字符串,我该怎么办?什么不起作用?你有javascript错误吗?您是否收到了包含某些内容的警报?不,甚至没有警报。请查看浏览器的开发人员工具,确保请求返回正确的值。注释掉警报并分析行,然后添加console.log(data)
,看看您得到了什么。如果没有,则添加一个方法error:function..
,就像success
方法一样,然后查看输出结果。@DainisTools控制台日志显示:传递给getElementById()的空字符串,我该怎么办?仍然是一样的,console.log说:传递给getElementById()的空字符串不会得到响应。检查php侧将您的echo$myJSON
替换为echo json_encode(“foo”)代码>并重试。相同的结论,空字符串传递了bla-bla,那么“foo”是什么?您尝试了console.log(data)
?因为您编写了一个getElementById()
-错误,这是与console.log()
…不同的另一个函数。console.log说:传递给getElementById()的空字符串不会得到响应。检查php侧将您的echo$myJSON
替换为echo json_encode(“foo”)代码>并重试。相同的结论,空字符串传递了bla-bla,那么“foo”是什么?您尝试了console.log(data)
?因为您编写了一个getElementById()
-错误,这是传递给getElementById()的console.log()
…空字符串以外的另一个函数,这就是consolewrite console.log(数据)中所说的;传递给getElementById()的空字符串,这是它在consolewrite console.log(数据)中所说的;只是打字错误,对不起。上面是我的实际代码。还是不行,只是打字错误,对不起。上面是我的实际代码。但它仍然不起作用