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

时间:2012-01-04 18:13:54

标签: php javascript

  

可能重复:
  What is the safest way of passing arguments from server-side PHP to client-size JavaScript

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

问题:

我不知道我的语法或逻辑是否正确,因为我没有得到任何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>

1 个答案:

答案 0 :(得分:2)

为什么你没有使用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>

这比构建字符串

更聪明