在javascript中访问php数组变量(来自ajax调用)

时间:2012-04-16 13:33:23

标签: php javascript mysql ajax google-visualization

我无法访问在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来重新加载整个页面。

3 个答案:

答案 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中使用对象,你可以将它用作关联数组,如果没有关联,你可以将它用作普通数组。