这对我来说是新的,所以请耐心等待。 JQuery& json - 我一直在使用json&在PHP中序列化“年龄”,但只是进入JQ。我想传递数据跨域 - 所以json数组似乎对我来说最好但我如何显示它,例如。
说我有一个像这样的json数组在页面名称examplearray.php上的php创建,位于http://domain1.com/examplearray.php
$catarray = array('Animal Life','Business & Finance','Cars & Vehicles','Entertainment & Arts','Food & Cooking','Health','History, Politics & Society','Hobbies & Collectibles','Home & Garden','Humor & Amusement','Jobs & Education','Law & Legal Issues','Literature & Language','Relationships','Religion & Spirituality','Science','Shopping','Sports','Technology','Travel & Places');
$callback = json_encode($catarray);
我知道我可以从另一个域http://domain2.com
这样称呼它$(document).ready(function(){
$.getJSON("http://domain1.com/examplearray.php?callback=",
function(data){
$.each(data, function(i,item)
{
// WHAT DO I put in here to read the array? i.e. what are the keys etc. //
// I assume the display is something like $('#element').html('something');
});
});
});
在上面的示例中,如果您遵循该键,则没有“set”键,但现在像这样添加一个键到数组
$catarray = array('keyname' => array('Animal Life','Business & Finance','Cars & Vehicles','Entertainment & Arts','Food & Cooking','Health','History, Politics & Society','Hobbies & Collectibles','Home & Garden','Humor & Amusement','Jobs & Education','Law & Legal Issues','Literature & Language','Relationships','Religion & Spirituality','Science','Shopping','Sports','Technology','Travel & Places'));
非常感谢,谢谢。
答案 0 :(得分:1)
您需要在回调后添加?
,并且需要使用该回调服务器端包装代码:
examplearray.php:
<?php
// your data generation routine
$results = array('Animal Life','Business & Finance','Cars & Vehicles','Entertainment & Arts','Food & Cooking','Health','History, Politics & Society','Hobbies & Collectibles','Home & Garden','Humor & Amusement','Jobs & Education','Law & Legal Issues','Literature & Language','Relationships','Religion & Spirituality','Science','Shopping','Sports','Technology','Travel & Places');
if(isset($_REQUEST['callback'])) {
$json_callback_func = $_REQUEST['callback'];
echo $json_callback_func . '('.json_encode($results).')';
}
?>
你的JS:
$(function() {
$ul = $('ul');
$.getJSON("http://domain1.com/examplearray.php?callback=?", function(data){
$.each(data, function(k,v){
$ul.append("<li>" + v + "</li>");
});
});
});
既然你的数组没有索引,它就是一个数值数组,所以键k
只是索引。
现在,如果你有密钥,比如你的第二个例子,你可能想要使用嵌套循环,或者如果你有确切的案例,那么使用:
$.each(data.keyname, function(k,v){
答案 1 :(得分:0)
要了解您必须使用哪些变量,您可以尝试在Chrome中的“Javascript控制台”或Firefox中的Firebug等调试器中运行代码。在$ .each函数中放置一个断点。查看本地变量,您应该可以看到所有可用的数据结构。习惯在浏览器中使用调试工具。它们为您节省了大量时间。
要更直接地解决您的问题,可以使用$ .each()在这里访问数据的好例子:http://api.jquery.com/jQuery.getJSON/
“item”现在是您示例中的javascript对象。你可以这样使用它(item.attribute)