我的服务器有这个结果,我想访问mem和pid的值
{"mem":"7","pid":"5"}{"mem":"9","pid":"7"}{"mem":"10","pid":"7"}{"mem":"8","pid":"5"}
我尝试从控制台回显值。但它没有显示。
$.ajax({
type:'post',
dataType:'json',
data:'mydata'
url:'tomyurl',
success:function(data){
console.log(data[0].mem);//did not show the value
});
修改
这是我的服务器端脚本
public function display_children($parent,$level){
try {
$cmd = $this->connection->prepare('SELECT mem,pid from mytree where pid = ?');
$cmd->execute(array($parent));
$results = array(
'mem' => array(),
'pid' => array()
);
while ( $row = $cmd->fetch(PDO::FETCH_ASSOC)) {
$results['mem']=$row['mem'];
$results['pid']=$row['pid'];
echo json_encode(results);
$this->display_children($row['mem'], $level + 1);
}
}
catch(PDOException $ex){
return $ex->getMessage();
}
}
我在这里查看了如何查询hierarchical-data-database
我在访问mem和pid的值时遇到了问题。
提前谢谢。
答案 0 :(得分:1)
编写的JSON无效。您可能希望确保服务器返回有效的数组,例如:
[{"mem":"7","pid":"5"},{"mem":"9","pid":"7"},{"mem":"10","pid":"7"},{"mem":"8","pid":"5"}]
如果是,您提供的代码应该有效。要获取数组中的所有mem
和pid
值,您可以执行以下操作:
for (var index = 0; index < data.length; index++) {
var item = data[index];
console.log("index=" + index + ", pid=" + item.pid + ", mem=" + item.mem);
}
http://jsfiddle.net/cn7mzxws/1/
由于您正在使用jQuery,您还可以使用$.each来完成同样的事情。
虽然如果您只关心第一项的mem
值,那么data[0].mem
是正确的,一旦您的数据被正确打包到JSON数组中。