据我所知,将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。我错过了什么?
答案 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>