我正在尝试从php文件中检索json并在div中打印名称。我无法得到任何结果。
HTML:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('button').click(function(){
$.ajax({
type: "post",
url: "services/myphp1.php",
dataType: "json",
async: false,
contentType: 'application/json',
success: function(data) {
var html = "";
JSON.parse(data).forEach(function(item){
html+ = item.name;
});
$('#div1').append(html);
}
});
});
});
</script>
</head>
<body>
<button>Click Me!</button>
<div id="div1"></div>
</body>
</html>
PHP:
<?php
$alpha = '{Persons:[{name:"Robert",age:"33"},{name:"Lina",age:"23"},{name:"Emerald",age:"19"}]}';
echo json_encode($alpha);
?>
有人能告诉我我在哪里弄错了吗?我想在我的div中找到名为'#div1'的3个人的名字。提前致谢!!! ;(....
答案 0 :(得分:2)
您的JSON结构不正确。为了确保其结构良好,让PHP为您完成工作。在PHP中,像这样构建你的JSON:
$arr = array(
"Persons" => array(
array(
"name" => "Robert",
"age" => 33
),
array(
"name" => "Lina",
"age" => 23
),
array(
"name" => "Emerald",
"age" => 23
)
)
);
header("Content:application/json");
echo json_encode($arr);
然后在JS中,您将接收纯JSON,因此不需要解析,您只需要迭代。我也会使用$.getJSON
:
$.getJSON("services/myphp1.php", function (data) {
data.Persons.forEach(function (i) {
$('#div1').append(i.name);
});
});
答案 1 :(得分:1)
除此之外,假设您的php正确返回该JSON,您返回的JSON是一个具有属性'Persons'的对象,即一个数组。 所以试试:
JSON.parse(data).Persons.forEach( ... )
答案 2 :(得分:1)