JavaScript 变量中的 PHP 数组 - JS 元素


PHP Array in Javascript Variable - JS Element

我有一个Javascript变量,我正在设置一个PHP变量。

function cancel(number) {
    var message = "<?= $message[" + number + "]; ?>";
}

$message是一个数组。"数字"是我要设置消息的数组元素。基本上,我想使用 Javascript 变量作为元素选择器将 Javascript 变量设置为 PHP 变量。因此,如果"数字"是 2,它将选择:

$message[2];

但是,上述方法不起作用,我什至不确定这是否可能。

不是。使用 XHR 从服务器检索值。

这似乎根本不可能; PHP 在服务器端进行评估,javascript 在客户端进行评估。 所以PHP会把它看成$message["+number+"],并尝试在"+number+"的索引处找到值。 您可能需要执行类似 AJAX 请求的操作才能获取所需的数据。

你正在做的事情是不可能的;因为 php 是一种服务器端语言,它首先执行,然后执行 js;没有任何方法可以控制哪个先执行。 必须使用 AJAX 检索变量。

这样的事情会起作用:

<script type="text/javascript">
var messages = <?= json_encode($message) ?>;
function cancel(number) {
    var message = messages[number];
}
</script>

当然,这将在 JavaScript 源代码中输出整个数组。如果它很大,那么最好使用 AJAX。

提示:如果您"查看源代码",那么为什么您的方法不起作用应该很明显。

你根本无法使用这种方法来做到这一点。PHP 是服务器端代码,这意味着它在服务器上运行,而 JavaScript 是客户端代码,这意味着它在客户端或浏览器上运行。

PHP 运行后,它会生成一个 HTML 文档,并将该文档作为响应发送到浏览器。完成后,将数据返回服务器的唯一方法是通过表单 POST 发送数据、通过 AJAX 发送数据或通过脚本标记远程处理发送数据。

考虑在互联网上查看一些示例,说明如何通过表单和 AJAX 将数据发布回服务器。很明显,您正在努力解决有关如何正确构建程序的一些概念,查看一些示例将是学习和掌握这些技术的好方法。

  • PHP 提交表单示例
  • PHP 教程

您需要使用 AJAX 调用来解决问题。