Javascript 为什么使用jqueryajax。返回值未定义?
当我执行一个从json“提醒”数据的函数时,发生了一件奇怪的事情。如果我指定,比如Javascript 为什么使用jqueryajax。返回值未定义?,javascript,php,jquery,json,ajax,Javascript,Php,Jquery,Json,Ajax,当我执行一个从json“提醒”数据的函数时,发生了一件奇怪的事情。如果我指定,比如alert(data.name),“警报”返回“未定义”,但如果我只是把警报(数据),它返回像{“id”:“1”,“name”:“Erluan”} 这是接收要在数据库中搜索的id的函数 function receiveUser(val){ $.ajax({ type:"POST", url:"../json/userperm/use
alert(data.name)代码>,“警报”返回“未定义”,但如果我只是把警报(数据)
,它返回像{“id”:“1”,“name”:“Erluan”}
这是接收要在数据库中搜索的id的函数
function receiveUser(val){
$.ajax({
type:"POST",
url:"../json/userperm/userGrid.php",
data: 'iduser='+val,
datatype:"json",
success: function(data, string, jqXHR){
alert(data.name);
}
});
}
这是userGrid.php
<?php
include('../../config.php');
$user = mysql_query("SELECT * from hospital_".$_SESSION['template'].".users where id = ".$_POST['iduser']." order by name");
$results = array();
while($row = mysql_fetch_array($user))
{
$results[] = array(
'id' => $row['id'],
'name' => $row['name']
);
}
$json = json_encode($results);
echo $json;
?>
谢谢。
您的php脚本需要正确的标题:
header('Content-Type: application/json');
JQuery似乎勇敢地将结果表示为字符串{“id”:“1”,“name”:“Erluan”},通过使用正确的头,它应该被解析为JSON。您尝试过评估ajax响应吗?
如果没有,则尝试调用eval函数,然后获取值
success: function(data, string, jqXHR){
var res = eval('(' + data+ ')');
alert(res.name);
}
由于返回数据类型是json,OP不必使用json.parse@JonathanNewton$results是array of array…在json_编码后,它将是对象数组。所以,在JS中,您需要通过循环来阅读它。在当前情况下,您可以尝试使用数据[0]。命名它将起作用。@JonathanNewton jQuery应该已经在分析任何正在使用的JSONreturned@JayBlanchard是原版的吗comment@Naincy我试过了,它返回“Undefined”:S。在ajax请求中,它应该是“dataType”而不是“dataType”,更改它也可以解决这个问题。