如何将 php 变量插入 javascript 对象/数组


How to insert a php variable into a javascript object/array

可能的重复项:
将参数从服务器端 PHP 传递到客户端大小的 JavaScript 的最安全方法是什么

目标: 将 javascript 对象中的静态文件名替换为 php 数据。

问题:

我不知道我的语法或逻辑是否正确,因为我没有收到任何 js 或 php 错误。最糟糕的是我的脚本没有给出预期的结果。您可以在以下位置查看实际页面:http://www.iamvishal.com/dev/property/burradon-road-burradon 197行

我想用php制作的javascript对象:

var data = { 'JPEG/1.jpg': { caption: '' }, 'JPEG/2.jpg': { caption: '' }, 'JPEG/3.jpg': 
{ caption: '' }, 'JPEG/4.jpg': { caption: '' },  'JPEG/5.jpg': { caption: '' },  
'JPEG/6.jpg': { caption: '' },
'JPEG/7.jpg': { caption: '' },  'JPEG/8.jpg': { caption: '' },};

所以我需要用 php 变量$filename替换 JPEG/1.JPG。下面是我的代码。

<script type="text/javascript">
var data = { ;

<?php
$queryglob ="JPEG/*".$node->field_ropertyid['und'][0]['value'].".jpg";
// Here I am getting all the file names as per my condition.
foreach (glob($queryglob) as $filename) {
// here I am want each file name to be assigned into the javascript object
?>
data = data+'+<?php print $filename ; ?> +':{caption:''}, ;
<?php
}
?>
data = data+};
</script>

为什么不使用json_encode

<?php
 $data = array( );
 foreach (glob($queryglob) as $filename) $data[$filename] = array( 'caption' => '' );
?>
<script type="text/javascript">
 var data = <?php echo json_encode( $data ); ?>
</script>

这比构建字符串要聪明得多