dousong5161 2015-11-17 06:58
浏览 57
已采纳

将PHP数组传递给JavaScript的问题

I understand that the format for passing a PHP array to Javascript is:

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

I have a php function that stores some values in a longitude and latitude array. These array do hold the right values within php since print_r() within php shows me that the array is correct.

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

Now, I pass on this array to JS in this manner:

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

In the beginning, when I open the HTML file, it shows me an empty array (which is expected because the PHP arrays aren't filled yet). Then user enters something, the php arrays are filled up with longitudes and latitudes. These values should now be passed to JS. However, it doesn't alert anything after that. I can't be sure if array is successfully passed to JS. What am I missing?

  • 写回答

3条回答 默认 最新

  • dongming8867 2015-11-17 07:02
    关注

    Try this:

    <script>
        var data = <?php echo json_encode( $data ); ?>;
    </script>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • dongmi1995 2015-11-17 07:02
    关注

    Try like below:

    <?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>
    
    评论
  • dongyingtang3803 2015-11-17 07:02
    关注

    You are getting a string in lati_array , Try to convert it into json like this:

    <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>
    
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 php5.3内存泄露
  • ¥15 DigSilent如何复制复合模型到自己案例?
  • ¥15 求日版华为b610s-77a 官方公版固件,有偿
  • ¥15 关于#java#的问题,请各位专家解答!(相关搜索:java程序)
  • ¥15 linux tsi721的驱动编译后 insmod 提示 报错
  • ¥20 multisim测数据
  • ¥15 求无向连通网的所有不同构的最小生成树
  • ¥15 模拟器的framebuffer问题
  • ¥15 opencv检测轮廓问题
  • ¥15 单点式登录SSO怎么爬虫获取动态SSO_AUTH_ACCESS_Token