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

时间:2012-05-19 04:02:01

标签: php javascript

我有一个Javascript变量,我将PHP变量设置为。

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

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

$message[2];

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

6 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

你在做什么是不可能的;因为php是服务器端语言,所以首先执行它,然后执行js;没有办法控制哪个先执行。您必须使用AJAX检索变量。

答案 3 :(得分:1)

您无法使用此方法执行此操作。 PHP是服务器端代码,意味着它在服务器上运行,而JavaScript是客户端代码,这意味着它在客户端或浏览器上运行。

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

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

答案 4 :(得分:1)

这样的事情会起作用:

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

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

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

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

答案 5 :(得分:-2)

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