这是我在后端生成它的方式:
$scr = '';
forech(){
$scr .= '['.$key.',"'.$address.'",'.$lat.','.$lng.',"'.$post_title.'","'.$post_image.'","'.$post_url.'","'.$default_price.'","'.$excerpt.' "],';
}
这就是我输出的地方:
var events = [<?php echo $scr; ?>];
但是我在firebug控制台中遇到了这个错误(取决于内容,因为其他内容没有使用相同的代码发生:
SyntaxError: unterminated string literal
ent/encantadora-casa-moditerranea-con-vistas-al-mar/","118","
(通过查看源代码,我可以在该代码后看到换行符)
以某种方式逃脱的任何方式?
答案 0 :(得分:4)
当您拥有json_encode()
时,无需将自己的序列化推广到JavaScript。只需将整个输出转储到您的页面中,然后再担心逃避。
var events = <?php echo json_encode($my_array_thing); ?>;
答案 1 :(得分:2)
我建议你将所需的所有变量放入这样的数组中:
$a = array(1,true,null,"x",0.2, array("some","deven deeper","nested values"));
然后使用json_encode
var events = <?php echo json_encode($a); ?>;
答案 2 :(得分:0)
我总是建议采取更清洁的方法。
<script type="application/json" id="yourArray">
<?php echo json_encode($yourArray); ?>
</script>
...
<script>
var events = $.parseJSON($('#yourArray').text());
</script>
这样你的javascript代码就完全脱离了PHP。