我正在尝试在我的JS函数中获取一个PHP JSON变量:
var json_obj = jQuery.parseJSON ( ' + <?php echo $latLongJson; ?> + ' );
使我获取latLongJson变量的PHP代码是:
<?php
$latLongJson = $dbUrl->getCoordinates($id);
print_r($latLongJson);
?>
我可以使用PHP打印latLongJson变量。但是json_obj的console.log表示未定义。
JS代码
<script>
//<![CDATA[
var json_obj = jQuery.parseJSON ( ' + <?php echo $latLongJson; ?> + ' );
//var json_obj = 1;
//]]>
console.log(json_obj);
</script>
生成的JS代码:
//<![CDATA[
var json_obj = jQuery.parseJSON ( ' + + ' );
//]]>
console.log(json_obj);
最佳答案
考虑当' + <?php echo $latLongJson; ?> + '
有效时$latLongJson
变为什么。
例如,假设$ latLongJson包含字符串{"foo": "bar"}
,则您正在调用:
jQuery.parseJSON ( ' + {"foo": "bar"} + ' );
当您只想:
jQuery.parseJSON ( '{"foo": "bar"}' );
您可以删除
+
使其正常工作,但通常*都不需要*在Javascript中解析JSON。如果您知道$latLongJson
包含有效的JSON,则可以执行以下操作:var json_obj = <?php echo $latLongJson; ?>;
* There is an exception