如何在PHP中获取JavaScript变量值

ras*_*111 24 javascript php

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

// set global variable in javascript
    profile_viewer_uid = 1;
Run Code Online (Sandbox Code Playgroud)
// php code

$profile_viewer_uid=$_POST['profile_viewer_uid']; 
Run Code Online (Sandbox Code Playgroud)

这给了我以下错误: -

A PHP Error was encountered
Severity: Notice
Message: Undefined index: profile_viewer_uid
Run Code Online (Sandbox Code Playgroud)

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

$profile_viewer_uid = "<script language=javascript>document.write(profile_viewer_uid);</script>
Run Code Online (Sandbox Code Playgroud)

当我回声时它什么也没有显示.

Chr*_*ngs 17

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

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

window.location.href=”index.php?uid=1";
Run Code Online (Sandbox Code Playgroud)

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

$somevar = $_GET["uid"]; //puts the uid varialbe into $somevar
Run Code Online (Sandbox Code Playgroud)

  • 如果没有重定向,这是可能的 (5认同)

Ars*_*sum 13

以下是工作示例:在同一页面上获取javascript变量值.

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

<?php
echo "<script>document.writeln(p1);</script>";
?>
Run Code Online (Sandbox Code Playgroud)

  • 这段代码是_NOT_将一个变量从js传递给PHP:它只是添加一个js脚本来输出页面中的变量. (6认同)
  • 这就是我们真正想要的,无需刷新页面...:) (2认同)

hum*_*iam 10

添加一个包含您要访问的javascript变量的cookie.

document.cookie="profile_viewer_uid=1";
Run Code Online (Sandbox Code Playgroud)

然后通过php访问它

$profile_viewer_uid = $_COOKIE['profile_viewer_uid'];
Run Code Online (Sandbox Code Playgroud)


bur*_*zum 6

您可能想从学习Javascript和php开始.Javascript是一种客户端脚本语言,运行在连接到运行php的Web服务器的客户端机器的浏览器中.这些语言无法直接通信.

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

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

<script type="text/javascript>
    var foo = <?php echo json_encode($somePhpVar); ?>
</script>
Run Code Online (Sandbox Code Playgroud)

  • 你确实意识到"**不能**沟通"是一种夸大其词,特别是当你的下一句话谈到如何让他们沟通时.:) (14认同)

T30*_*T30 5

如果您想在 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 }
})
Run Code Online (Sandbox Code Playgroud)

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

 $profile_viewer_uid = $_POST['profile_viewer_uid'];
 echo($profile_viewer_uid);
 // prints 1
Run Code Online (Sandbox Code Playgroud)

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