将PHP数组传递给JavaScript的问题

时间:2015-11-17 06:58:49

标签: javascript php arrays

据我所知,将PHP数组传递给Javascript的格式为:

<script type="text/javascript">
    var obj = <?php echo json_encode($php_variable); ?>;
</script>

我有一个php函数,可以在经度和纬度数组中存储一些值。

中,这些数组确实在php中保存了正确的值,因为php中的print_r()显示数组是正确的。

print_r($latitude_array);
print_r($longitude_array);

现在,我以这种方式将此数组传递给JS:

<script>
var lati_array = "<?php echo json_encode($latitude_array); ?>";
var longi_array = "<?php echo json_encode($longitude_array); ?>";
alert(lati_array[0]);
</script>

一开始,当我打开HTML文件时,它会向我显示一个空数组(这是预期的,因为PHP数组尚未填充)。然后用户输入内容,php数组充满了经度和纬度。现在应该将这些值传递给JS。但是,在此之后它不会发出任何警报。我不能确定数组是否成功传递给JS。我错过了什么?

3 个答案:

答案 0 :(得分:3)

试试这个:

<script>
    var data = <?php echo json_encode( $data ); ?>;
</script>

答案 1 :(得分:0)

尝试如下:

<?php
$array_var = array(111, 222, 333, 444);
?>
<script>
    var array_var = "<?php echo json_encode($array_var); ?>";
    console.log(array_var);

    array_var = JSON.parse(array_var);
    console.log(array_var);

    alert(array_var[0]);
</script>

答案 2 :(得分:0)

你在lati_array中得到一个字符串,尝试将它转换为json,如下所示:

<script>
var lati_array = "<?php echo !empty($latitude_array) ? json_encode($latitude_array) : ''; ?>";
var longi_array = "<?php echo !empty($longitude_array) ? json_encode($longitude_array) : ''; ?>";
lati_array = JSON.parse(lati_array);
alert(lati_array[0]);
</script>