使用JavaScript变量作为索引访问PHP数组元素

时间:2013-05-15 09:49:17

标签: php javascript arrays indexing

代码如下所示:

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文件。

3 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:1)

你要做的事情是行不通的。例如:

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

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

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

  1. 使用表单并阅读$_POST变量
  2. 将其附加到网址并阅读$_GET变量
  3. 使用AJAX并将该变量异步发送到服务器
  4. 将整个数组从PHP返回到您的Javascript代码
  5. 等。等
  6. 请记住,PHP在服务器上运行,该服务器呈现页面,然后由运行Javascript的浏览器读取该页面。你不能将PHP代码粘贴到页面中,并期望它被PHP解析!

答案 2 :(得分:0)

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