【问题标题】:Access a PHP array element by using a JavaScript variable as index使用 JavaScript 变量作为索引访问 PHP 数组元素
【发布时间】:2023-04-10 03:18:02
【问题描述】:

代码如下所示:

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

【问题讨论】:

  • PHP 是一种服务器端语言。当客户端收到页面时,PHP 代码已经被执行。所以不,你不可能用这个技巧做到这一点。

标签: php javascript arrays indexing


【解决方案1】:

你可以在JS中定义arrayName变量,并用服务器的值初始化:

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

【讨论】:

  • 这正是我的目标。非常感谢。
【解决方案2】:

您尝试执行的操作将行不通。比如这个:

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

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

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

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-27
      • 1970-01-01
      • 2012-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多