首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JS文件中使用PHP中的数组

在JS文件中使用PHP中的数组
EN

Stack Overflow用户
提问于 2013-05-16 03:48:36
回答 4查看 119关注 0票数 0

我的index.php中有一个由foreach创建的数组:

代码语言:javascript
复制
foreach ($events as $eventkey =>$event)
                {
                    echo "<li class='desktop-2 tablet-1 mobile-1'>".$event->title."<span class='eventLetter'>A</span><br/><span class='eventLocation'>".$event->city."</span></li>";
                    $LocationArray[]= $event->latlng;
                }

                json_encode($LocationArray);

现在我想在我的javascript (它是在另一个文件中编写的)中使用这个数组。但是我能做到吗?如果是这样,又是如何做到的呢?(我是php的新手,我真的不擅长AJAX之类的东西。我已经在这里和其他网站上找过了,但我真的找不到解决方案。)

我的计划是能够在我的javascript中循环数组,并在我的网站上的google地图上放置标记。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-05-16 03:56:38

最简单的解决方案是插入一个带有javascript变量的新脚本标记,然后使用json_encode将php数组赋给该变量。JSON (JavaScript Object Notation)是一种用于在编程语言之间进行数据交换的文本格式。因为JSON是基于JavaScript的,所以客户端不需要解码。

代码语言:javascript
复制
echo '<script>var myarray = '.json_encode($LocationArray).'</script>';
票数 0
EN

Stack Overflow用户

发布于 2013-05-16 03:53:18

您期望的是有效的json输出,对吗?

代码语言:javascript
复制
    <?php
    foreach ($events as $eventkey =>$event)
    {
    echo "<li class='desktop-2 tablet-1 mobile-1'>".$event->title."<span class='eventLetter'>A</span><br/><span class='eventLocation'>".$event->city."</span></li>";// remove this thing or maybe place it in a variable. do not echo it.
    $LocationArray[]= $event->latlng;
    }

    echo json_encode($LocationArray);

在你的脚本上

代码语言:javascript
复制
    $.ajax({
        url:"",
        success: function(data){
            var json = jQuery.parseJSON( data );

            for (var i = 0; i < json.length; i++) {
                alert(json[i]);
                //Do something
            }
        }
    })
票数 0
EN

Stack Overflow用户

发布于 2013-05-16 03:57:55

理想情况下,您可以使用AJAX并获取json_encode($LocationArray)的输出...

所以你的最后一行需要是

代码语言:javascript
复制
echo json_encode($LocationArray);

一旦启动AJAX调用的JS函数将其取回,您就可以将其转换为数组并循环。(假设您使用的是jQuery,代码应该是这样的……)

代码语言:javascript
复制
$.ajax({
    url: 'index.php',
    success: function(response) {
        var resData = $.parseJSON(response);
        for (var i = 0; i < resData.length; i++)
        {
            alert(resData[i]);
        }
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16573759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档