1

假设我有 php 页面 index.php

<?php
$x=$_POST[sent]  // I get some value in #x
?>
<html>
<head> 
<script>
function getVar()
{
var x= <How to fetch $x from php code>
alert(x);

}
</script>
</head>
<body> 
<button type="submit"> click </buttton>
</body>

</html>

如何在getVar(_)函数中获取 $x?或者另一种情况,一些变量在 JS 中,然后将其放入 php 代码中?

有没有可能?

实际上我有 index.php 并通过 ajax 请求加载新页面 url.php。我想向 url.php 发送一些变量,并希望在其中的 JS 代码中访问它们。

这是我的ajax请求:

 var id=mydata.id; // Guess I am getting some data here
 $.ajax({
                         url:'url.php'
                         ,async:     true
                         ,cache:     false
                         ,dataType:  'html'
                         ,success:   function(data){
                           $('body').html(data);
                           FB.XFBML.parse();
                         }

我想向idurl.php 发送 ajax 请求。我将获取它$x并希望在 JS 代码中使用它。

4

4 回答 4

3

php to javascript可以通过使用来完成

<?php $x = "iam a php variable"; ?>
<script>
        function getVar()
        {
        var x= "<?= $x; ?>";
        alert(x);    //alerts **iam a php variable**(value of $x from php)
        }
</script>

反之亦然,可以通过Ajax 完成。这是一个简单的例子

<script>
function showUser()
{
var str= "iam a javascript variable";
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    alert(xmlhttp.responseText); //alerts response from php
    }
  }
xmlhttp.open("GET","new.php?q="+str,true); //you can send request through post or get methods 
xmlhttp.send();
}
</script>

在这里,我通过 ajax 使用 GET 在 php 中获取 javascript 变量。在 new.php 中,我只是打印出通过 GET 收到的请求

<?php 
    print $_GET["q"];    //prints **iam a javascript variable**(value of str from   javascript) 
?>
于 2013-10-17T16:00:38.530 回答
1

PHP 和 Javascript 之间的通信是客户端-服务器通信的经典示例。在这种情况下,PHP 是您的服务器应用程序,而 Javascript 是您的客户端应用程序。为这种通信建立了许多协议,但您应该看看AJAXRESTful服务。

为了了解发生了什么,我建议您从 PHP 程序员的角度阅读有关HTTP 和 REST的本教程。在设计客户端-服务器应用程序时,PHP 会通过应用业务逻辑并与数据库通信来“生成”所有内容,而 Javascript 会在某些事件(点击、显示表格等)上向 PHP 询问这些内容。PHP 不会输出 HTML,而是输出 XML 或 JSON,因此您可以在 Javascript 中解析和显示该数据。

于 2013-10-17T16:06:53.763 回答
0

双向传输:

function getVar($var)
{
var xmlhttp;

    xmlhttp=new XMLHttpRequest();

    xmlhttp.onreadystatechange=function()
      {

      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        $phpVar = xmlhttp.responseText;
            return $phpVar;
        }
      }

    xmlhttp.open("POST","/yourPage.php",true);
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlhttp.send("var=" + $var);


}

然后在 yourpage.php 上:

<?
if (isset($_POST["var"])) {

  die($_POST["var"]);
  }
?>
于 2013-10-17T16:09:11.447 回答
0

如果您只是想将$x变量的值传递给 JavaScript,那么可以按如下方式完成:

function getVar()
{
    var x= "<?php echo htmlspecialchars($x); ?>";
    alert(x);    
}

这是一个工作示例:

<?php
    $x = $_POST['sent']  // I get some value in #x
?>
<html>

<head> 
    <script>
    function getVar()
    {
        var x= "<?php echo htmlspecialchars($x); ?>";
        alert(x);
    }
    </script>
</head>

<body> 
    <button type="submit" onclick="getVar()"> click </buttton>
</body>

</html>

如果脚本正确接收到变量,则单击按钮时$x它将为d。alert

于 2013-10-17T15:58:13.463 回答