-1

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

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

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

$message[2];

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

4

6 回答 6

2

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

于 2012-05-19T04:03:21.840 回答
2

这似乎根本不可能;PHP 在服务器端进行评估,javascript 在客户端进行评估。因此 PHP 会将其视为$message["+number+"],并尝试在 的索引处查找值"+number+"。您可能必须执行 AJAX 请求之类的操作才能获取您要查找的数据。

于 2012-05-19T04:06:06.947 回答
1

你正在做的事情是不可能的;由于php是服务端语言,所以先执行,后执行js;没有任何方法可以控制先执行哪个。您必须使用 AJAX 检索变量。

于 2012-05-19T04:04:57.857 回答
1

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

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

考虑查看 Internet 上的一些示例,了解如何通过表单和 AJAX 将数据 POST 回服务器。很明显,您正在为如何正确构建程序的一些概念而苦苦挣扎,查看一些示例将是您学习和掌握这些技术的好方法。

于 2012-05-19T04:05:17.607 回答
1

像这样的东西会起作用:

<script type="text/javascript">
var messages = <?= json_encode($message) ?>;

function cancel(number) {
    var message = messages[number];
}
</script>

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

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

于 2012-05-19T04:07:33.703 回答
-2

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

于 2012-05-19T04:05:14.610 回答