我的index.php中有一个由foreach创建的数组:
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地图上放置标记。
发布于 2013-05-16 03:56:38
最简单的解决方案是插入一个带有javascript变量的新脚本标记,然后使用json_encode将php数组赋给该变量。JSON (JavaScript Object Notation)是一种用于在编程语言之间进行数据交换的文本格式。因为JSON是基于JavaScript的,所以客户端不需要解码。
echo '<script>var myarray = '.json_encode($LocationArray).'</script>';发布于 2013-05-16 03:53:18
您期望的是有效的json输出,对吗?
<?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);在你的脚本上
$.ajax({
url:"",
success: function(data){
var json = jQuery.parseJSON( data );
for (var i = 0; i < json.length; i++) {
alert(json[i]);
//Do something
}
}
})发布于 2013-05-16 03:57:55
理想情况下,您可以使用AJAX并获取json_encode($LocationArray)的输出...
所以你的最后一行需要是
echo json_encode($LocationArray);一旦启动AJAX调用的JS函数将其取回,您就可以将其转换为数组并循环。(假设您使用的是jQuery,代码应该是这样的……)
$.ajax({
url: 'index.php',
success: function(response) {
var resData = $.parseJSON(response);
for (var i = 0; i < resData.length; i++)
{
alert(resData[i]);
}
}
});https://stackoverflow.com/questions/16573759
复制相似问题