【问题标题】:How to insert a php variable into a javascript object/array [duplicate]如何将php变量插入javascript对象/数组[重复]
【发布时间】:2026-01-16 06:30:01
【问题描述】:

可能重复:
What is the safest way of passing arguments from server-side PHP to client-size 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>

【问题讨论】:

  • 什么是 $node ?看起来 JPEG 似乎是该 PHP 文件所在目录中的一个目录。这是真的吗?
  • $node 是由 cms 即 drupal 加载的数组。它包含所有数据信息。 JPEg 是保存所有图像的目录,但脚本由 index.php 加载

标签: php javascript


【解决方案1】:

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

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

【讨论】:

  • 哇!这很快。我会尝试并回复你们
  • 嗨,我使用的是相同的 json_encode,但是当我打印这个数组时它显示 [object Object]。有什么想法吗?
  • Abhinandan Sahgal:请将此作为新问题发布