【发布时间】:2010-10-09 23:01:54
【问题描述】:
好的,我是 JSON 新手,所以如果我的问题有点无知,请原谅我 - 我的头撞墙太多,需要一些专家建议。
我正在尝试获得一个简单的示例,其中 HTML 页面使用 jQuery 的 JSON/AJAX 函数来调用示例 PHP 页面,该页面传回一个简单的 JSON 数据结构,然后页面使用 jQuery 编写一个从数据结构到页面的元素。在FF工作。在 IE7 中不起作用 arrrggghhhh!
HTML 代码(相关部分):
<script language="javascript" type="text/javascript" src="jquery.js"></script>
<script language="javascript" type="text/javascript">
function testAJAX() {
$.getJSON("test-ajax.php", function(json){
$("#div1").html(json.var1[1]);
});
}
</script>
</head>
<body>
<input type="button" value="test ajax" onclick="testAJAX();" />
<div id="div1"> </div>
</body>
PHP 代码(test-ajax.php):
<?php
include_once('./json.php');
$output = array('var1' => array('value1a', 'value1b', 'value1c'),
'var2' => array('value2a', 'value2b', 'value2c'));
header("Content-type: text/plain");
echo json_encode($output);
?>
json.php 有我正在使用的 json_encode() 函数 - 我从 http://us2.php.net/manual/en/function.json-encode.php 得到它。我使用它是因为我没有 PHP5,而且我的系统管理员不会安装任何对它的支持。直接在浏览器中查看 test-ajax.php 会打印出这样的序列化 JSON 结构:
{"var1":["value1a","value1b","value1c"],"var2":["value2a","value2b","value2c"]}
这似乎是一个有效的 JSON 结构。在我的 JavaScript 中,我试图通过这样做来引用 'value1b':json.var1[1]。 FF 处理得很好。 IE7 表示未定义。
我做错了什么?如何像这样传输二维数组
array('var1' => array('value1a', 'value1b', 'value1c'),
'var2' => array('value2a', 'value2b', 'value2c'));
通过 JSON/AJAX?或者这不可能?
【问题讨论】:
-
绝对可以。我刚刚在 IE7 中测试了那个 JSON 字符串,它运行良好,我能够成功找到 json.var1[1] 的值。问题肯定出在其他地方,能不能把你的getJSON函数贴出来?
-
getJSON 来自 jQuery 库。
-
是的 - 我的错 - 是缓存问题 - 请参阅我的答案。谢谢!
标签: php javascript json internet-explorer-7