0

代码如下所示:

PHP 文件

<?php
...
$arrayName = ['ArrayValue_0', ..., 'ArrayValue_n'];
...
php?>

JavaScript

$('.elementClass').each(function(index, id) {
    $(id).html('<?php echo $arrayName[index - 1]?>');
});

但是您不能只将这样的 JavaScript 变量插入到 php 标签中,因此永远不会收到索引。我知道这可以通过 AJAX 完成,但还有其他方法吗?提前致谢。

附加信息: 我被告知在 PHP 中执行此操作,因此无法将数组切换为 JS 文件。

4

3 回答 3

7

您可以在 JS 中定义arrayName变量并使用来自服务器的值对其进行初始化:

var arrayName = <?php echo json_encode($arrayName); ?>;
$(".elementClass").each(function(index, id) {
    $(id).html(arrayName[index-1]);
});
于 2013-05-15T09:53:28.840 回答
1

你试图做的事情不会奏效。例如这个:

$(id).html('<?php echo $arrayName[index - 1]?>');

以上永远不会奏效,因为 PHP 是在服务器上运行的,而不是在用户的浏览器上。

您需要做的是以某种方式将变量发送到服务器。你有很多选择:

  1. 使用表单并读取$_POST变量
  2. 将其附加到 URL 并读取$_GET变量
  3. 使用 AJAX 并将该变量异步发送到服务器
  4. 将整个数组从 PHP 返回到您的 Javascript 代码
  5. 等等等等

请记住,PHP 在服务器上运行,它呈现页面,然后由运行 Javascript 的浏览器读取。您不能将 PHP 代码粘贴到页面中并期望它被 PHP 解析!

于 2013-05-15T09:53:14.987 回答
0

如果您希望从中获取信息(PhP 在服务器上运行),则需要返回服务器,因此您可以在加载包含您的 PhP 数组的完整内容的页面时即时创建一个 javascript 变量,或者您使用 ajax 返回服务器而不刷新整个页面。

于 2013-05-15T09:52:11.317 回答