我无法访问在php中创建的数组,无法在javascript块中使用。 我知道
<?php echo json_encode($myArray); ?>
但我没有得到任何结果。
我有一个'index.html'文件,我尝试通过javascript访问该数组。 html页面存在于下拉菜单中。当用户在该下拉菜单中选择一个项目时,所选项目将用作从数据库中检索数据的参数。
'ajax.js'文件包含执行'retrieve.php'文件的代码,该文件从数据库内容构造数组('$ myArray')。因此,通过ajax调用检索数组。
我可以回复我的php文件中的javascript代码:
echo 'dataArray = ' . json_encode($data_array) . ';';
并使用该javascript变量? 换句话说,如何使用新的'dataArray'变量执行我的javascript代码?
要了解更大的图片:我正在尝试将该数组用于“Google图表”,我需要使用javascript来显示图表。 我可以查询所有数据并将其放入php数组中,但我没有成功将其正确地传输到我的html页面并使用javascript重新加载图表。
编辑:我使用ajax调用no来重新加载整个页面。
答案 0 :(得分:2)
而不是" echo 'dataArray = ' . json_encode($data_array) . ';'; "
,你应该写下这个 -
"echo json_encode($data_array)"
然后使用JSON.parse(response)
在客户端解释它,其中响应您从服务器(json)收到的响应
答案 1 :(得分:1)
我发现最好的方法就是这样:
客户代码:
<script>
var phpdata = <?=json_encode($jsData)?>;
</script>
服务器代码:
$jsData = '';
$jsData->first = $first;
$jsData->second = $second_array;
客户端使用:
alert(phpdata.second[1]);
编辑:
要使用AJAX从php获取数组,请使用jQuery http://api.jquery.com/jQuery.getJSON/
客户方:
var stored_array;
$.getJSON(url, function(data){
stored_array = data;
// run any other code you wish to run after getting the array.
});
服务器端:
print(json_encode($array));
这将获得一个json编码变量并将其存储供您使用。
答案 2 :(得分:0)
是的,你可以通过分配上面的json_encode函数来使用这个php数组
如果数组是关联的或在php中使用对象,你可以将它用作关联数组,如果没有关联,你可以将它用作普通数组。