如何将php数组传递给jquery并转换为json?

22 浏览
0 Comments

如何将php数组传递给jquery并转换为json?

如何在php4中使用精简的语言将一个数组存储在一个隐藏的div中,以便jquery可以获取并将其转换为json对象?我试图将一组数据传递给gmap,以便加载多个标记,但似乎无法弄清楚如何将php数组传递给jquery,然后将其转换为json对象。

我尝试使用一个自定义的json编码类来将php数组编码为json,但问题是它输出了一堆乱码字符,并且似乎导致了jquery代码中的错误。这是我在php中创建的数组:

$map_array[] = array('latitude' => $result_latitude,'longitude' => $result_longitude,'html' => $result_html,'title' => $result_name,'icon' => array('image' => '/pathtoicon' .$mapi .'.png','iconsize' => array(27,27)));
$map_json = $json->encode($map_array);

然后在jquery中:

var mapcoords = $('#mapcoord').html();
$('#rmap').gMap(
{
    zoom: 10,
    markers:$.parseJSON(mapcoords)
}
);

当我这样做时,我会得到这个错误:

“SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data”

如果我使用var mapcoords = $('#mapcoord').text();,这个方法是可以工作的。问题是,它会剥离掉html代码。那么我该如何将php数组传递给jquery,并能够保留html代码呢?

0
0 Comments

问题出现的原因是在外部的js文件中无法解析php的值。解决方法是可以将php的值作为全局变量在外部js文件中访问,或者将该变量作为参数传递给插件。如果实在无法解决,可以使用jQuery.parseJSON将字符串转化为json对象。

0
0 Comments

问题的原因是需要将PHP数组传递给jQuery并将其转换为JSON格式。解决方法是在服务器端将必要的JavaScript代码作为PHP字符串写入,并将其发送到客户端。下面是一个示例代码片段,演示了需要执行的操作:

$map_json = "var jsonData = " . $json->encode($map_array); 
$map_json = ''; 
echo $map_json;

在客户端中,你可以通过js代码访问变量jsonData。

0
0 Comments

问题的出现原因:需要将PHP数组传递给jQuery,并将其转换为JSON格式。

解决方法:

$json = json_encode($my_array);
echo <
     my_global_js_var = $json

EOS;

由于JSON是有效的JavaScript代码,因此可以将其作为变量传递给JavaScript。甚至不需要隐藏的HTML元素。

0