如何在 PHP 中获取 JavaScript 变量值

IT技术 php javascript
2021-01-22 17:52:28

我想要我可以使用 PHP 访问的 JavaScript 变量的值。我正在使用下面的代码,但它不会在 PHP 中返回该变量的值。

// set global variable in javascript
    profile_viewer_uid = 1;

// php code

$profile_viewer_uid=$_POST['profile_viewer_uid']; 

这给了我以下错误:-

A PHP Error was encountered
Severity: Notice
Message: Undefined index: profile_viewer_uid

我使用的另一个 php 代码给出了空值

$profile_viewer_uid = "<script language=javascript>document.write(profile_viewer_uid);</script>

当我回声时,它什么也没显示。

6个回答

您将需要使用 JS 将 URL 发送回,其中包含一个变量,例如:http : //www.site.com/index.php?uid=1

通过在 JS 中使用这样的东西:

window.location.href=”index.php?uid=1";

然后在 PHP 代码中使用 $_GET:

$somevar = $_GET["uid"]; //puts the uid varialbe into $somevar
我怀疑 index.php 是否是我们可以放在那里的任意名称,还是在我们进行调用之前需要存在的文件,或者它是我们在其中编写代码本身的文件的名称?(假设我在同一个文件中同时编写 html 和 php)
2021-03-13 17:52:28
这可能没有重定向吗
2021-03-16 17:52:28
尽管在那个 window.location 上,您想用一些引用所需变量值的代码替换“1”。
2021-03-18 17:52:28
你可以用一个帖子而不是一个获取请求来做到这一点吗?
2021-03-22 17:52:28

使用您要访问的 javascript 变量添加 cookie。

document.cookie="profile_viewer_uid=1";

然后通过 php 访问它

$profile_viewer_uid = $_COOKIE['profile_viewer_uid'];

这是工作示例:在同一页面上获取 javascript 变量值。

<script>
var p1 = "success";
</script>

<?php
echo "<script>document.writeln(p1);</script>";
?>
我明白你的意思,但这可以在纯 html/js 中完成。将它包装在 php echo 脚本中只是一个“无用”的开销,因为您的 php(运行服务器端的脚本)仍然不知道变量值。
2021-03-16 17:52:28
这就是我们真正想要的,无需刷新页面... :)
2021-03-17 17:52:28
这段代码没有将变量从 js 传递到 PHP:它只是添加了一个 js 脚本来输出页面中的变量。
2021-03-28 17:52:28
我同意你的看法......但这是一种罕见的情况,我们需要先在 js 中计算一些值,然后需要在 php 中处理该值......我已经经历过这种情况,所以这个方法解决了我的问题...
2021-04-05 17:52:28
问题是你不能用 php 处理这个变量。当 php 处理这个文件(服务器端)时,js 变量还没有设置。Js 变量设置在客户端,当 php 已经运行并且无法再交互时,除非您执行另一个 http 请求(例如使用ajax)。
2021-04-06 17:52:28

您可能想从学习什么是 Javascript 和 php 开始。Javascript 是一种客户端脚本语言,它运行在与运行 php 的网络服务器相连的客户端机器的浏览器中。这些语言不能直接交流

根据您的目标,您需要向服务器发出AJAX get 或 post 请求并返回 json/xml/html/whatever 您需要的响应并将结果注入回站点的 DOM 结构中。为此,我建议使用 Jquery、BackboneJS 或任何其他 JS 框架。有关示例,请参阅 Jquery 文档。

如果您必须在同一站点上将 php 数据传递给 JS,您可以将数据作为 JS 回显,并使用json_encode()将您的 php 数据转换为 JS。

<script type="text/javascript>
    var foo = <?php echo json_encode($somePhpVar); ?>
</script>
你确实意识到“无法沟通”是一种夸张的说法,尤其是当你的下一句话谈到如何让他们沟通时。:)
2021-04-11 17:52:28

如果您想在 php 脚本中使用 js 变量,您必须在 HTTP 请求中传递它。

基本上有两种方式:

  • 提交或重新加载页面(根据Chris 的回答)。
  • 使用AJAX,它专门用于在网页 (js) 和服务器 (php) 之间进行通信,而无需重新加载/更改页面。

一个基本的例子可以是:

var profile_viewer_uid = 1;
$.ajax({
  url: "serverScript.php",
  method: "POST",
  data: { "profile_viewer_uid": profile_viewer_uid }
})

serverScript.php文件中,您可以执行以下操作:

 $profile_viewer_uid = $_POST['profile_viewer_uid'];
 echo($profile_viewer_uid);
 // prints 1

注意:在这个例子中我使用了jQuery AJAX,它实现起来更快。你也可以用纯js来做。