【发布时间】:2010-11-25 12:35:26
【问题描述】:
我有一个多维数组,我想将它发送到一个带有 Javascript 的 PHP 脚本,该脚本解析 JSON 数据并将其绘制在 Google 地图上。我正在尝试使用表单来模拟它:
<?php
$jsontest = array(
0 => array(
'plate_no' => 'abc111',
'longlat' => array(121.003895,14.631563),
'info' => 'first item'
),
1 => array(
'plate_no' => 'abc222',
'longlat' => array(121.103895,14.731563),
'info' => 'second item'
)
);
$jsonarray = json_encode($jsontest);
?>
<form action="json-target.php" method="post" accept-charset="utf-8">
<input type="hidden" name="jsonarray" value="<?php echo $jsonarray; ?>" id="jsonarray">
<p><input type="submit" value="Continue →"></p>
</form>
json-target.php 看起来像这样:
<?php
print "The value of \$_POST is ";
print_r($_POST);
?>
$_POST 的输出是Array ( [jsonarray] => [{ )。我想将 $jsonarray 变量的内容传递给 Javascript 函数(请参阅下面的更新)。
更新:我还有一个简单的 Javascript,它应该解析从 $_POST 收到的值并通过 alert() 发布值:
<script src="/js/json2.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
var json = JSON.parse(<?php echo $_POST['jsonarray'] ?>);
for (var i = 0; i < json.length; i++) {
alert(json[i]);
}
</script>
但是输出被反斜杠字符弄乱了。
var json = JSON.parse([{\"plate_no\":\"abc111\",\"longlat\":[121.003895,14.631563],\"info\":\"first item\"},{\"plate_no\":\"abc222\",\"longlat\":[121.103895,14.731563],\"info\":\"second item\"}]);
有什么更好的方法?
【问题讨论】:
-
问题到底是什么?
标签: php javascript json post