将JavaScript变量传递给PHP代码?

6

可能是重复问题:
如何在JavaScript和PHP之间传递变量/数据?

我有一个包含PHP和JavaScript代码的文件。我想将一个PHP变量设置为一个以PHP变量作为参数的JavaScript函数的结果。例如:

$parameter = "this is a php variable";
$phpVar = echo "foo(" . parameter . ");";

我知道你不能使用"= echo",那么还有其他方法吗?

谢谢


1
使用ajax发送,或者使用表单...也取决于你的情况,取决于你想做什么... - StiveKnx
5个回答

12

你不能直接这样做,因为JavaScript在客户端执行,而PHP在服务器端执行。

你需要先执行JavaScript,然后通过表单或AJAX调用将结果发送到服务器。

以下是可能的实现方式:

PHP

$parameter = "this is a php variable";
echo "var myval = foo(" . parameter . ");";

JavaScript

var myval = foo("this is a php variable"); // generated by PHP

$.ajax({
  type: 'POST',
  url: 'yourphpfile.php',
  data: {'variable': myval},
});

接收 PHP(yourphpfile.php)

$myval = $_POST['variable'];
// do something

接收的 PHP 代码是由 yourphpfile.php 指定的文件。它可以是单独的文件,也可以是原始 PHP 文件中 if 块的一部分。 - Mike Tangolics
简洁易懂。 - Jodo1992
对于多个变量呢? - user3560827

3

PHP代码在响应发送之前在服务器上运行;JavaScript在浏览器中运行,通常是在响应已经发送后。你无法从JavaScript设置PHP变量,因为在浏览器中没有PHP变量,而JavaScript正在运行。您需要使用JavaScript向存储所需信息的PHP脚本发出AJAX请求。


2
谁给我点了踩,解释一下你为什么不喜欢我的回答会更有用,特别是因为在我之后回答的每个人似乎都说了和我一样的话。我错过了什么重要的细节吗?还是你只是不喜欢以高品质肉类命名的人? - Chuck

3

试试这个:

var a = "Result: "+ <?php echo json_encode($parameter); ?>;

1
你需要从 JavaScript 向脚本发起 GETPOST 请求。

0

你不能将JS变量传递给PHP 代码
PHP运行在服务器上,距离客户端(JS运行的地方)有千里之遥。

因此,你只能使用JS或常规超链接来调用PHP脚本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接