我正在尝试访问并在我的页面上的json对象中显示变量。谁能告诉我为什么变量会显示三次?
my_array.php
<?php
$my_data=array(name=>"john",age=>"30", city=>"copenhagen");
// sending output
header('Content-Type: text/json');
echo json_encode($my_data,true);
?>
My_page.php
<script>
$(document).ready(function() {
$("button").click(function() {
$.getJSON("my_array.php", function(data) {
$.each(data, function(key) {
$("#showdata").append(data.city);
});
});
});
});
</script>
//Show the data further down the page.
<div id="showdata"></div>
显示
copenhagencopenhagencopenhagen
答案 0 :(得分:1)
那是因为你正在迭代每个&#39;您收到的json响应中的数据项,my_array.php中有3个key =&gt;值对
删除&#34; $。每个(数据,功能(键){}&#34;只会返回一次&#39; city&#39;
$(document).ready(function(){
$("button").click(function(){
$.getJSON("my_array.php",function(data){
$("#showdata").append(data.city);
});
});
});
答案 1 :(得分:1)
使用此
my_array.php
<?php
$my_data = array(
name => "john",
age => "30",
city => "copenhagen"
);
// sending output
header('Content-Type: application/json');
echo json_encode($my_data, true);
?>
My_page.php
<div id="showdata"></div>
<button>Click Me!</button>
<script src="js/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(e){
$.getJSON("test.php", function(data){
console.log(data);
$("#showdata").append(data.city);
});
});
});
</script>
这只会给你一个哥本哈根。
希望它有所帮助...答案 2 :(得分:0)
首先要做的事情:
设置:
header("Content-Type: application/json");
以上:
echo json_encode($my_data,true);
在你的php文件上。
或者在您的javascript上使用以下代码段:
$.getJSON("my_array.php",function(data)
{
data=JSON.stringify(data);
$.each(data, function(key)
{
$("#showdata").append(data.city);
});
});
此外,无论是在返回数据之上的两种方式都是一个Object,所以为了在你的php文件上正确返回数据必须是:
$my_data=array(array(name=>"john",age=>"30", city=>"copenhagen"));
注意:php的json_encode上的关联数组变成了Objects。 json_encode上的非关联数组仍然是一个数组
答案 3 :(得分:0)
我猜是因为你在页面上有三个按钮而$ .each选择了选择器:
{{1}}
答案 4 :(得分:0)
由于你在JSON对象中拥有三个键,你正在迭代3次,
$.getJSON( "ajax/test.json", function( data ) {
var items = [];
$.each( data, function( key, val ) {
console.log( "key + " " + val" );
});
查看JQuery文档以获取更多信息。