你能从Javascript变量创建一个PHP变量吗?

时间:2013-06-10 16:28:18

标签: php javascript

我是Javascript编程的新手,我找不到关于如何从javascript变量创建PHP变量的广泛文档。有人可以告诉我一个例子吗?在以下示例中,'t'是我想在PHP中使用的Javascript变量:

    <script type="text/javascript">
        function readtime(){
             var d = new Date();
             var c_hour = d.getHours();
             var c_min = d.getMinutes();
             var c_sec = d.getSeconds();
             var t = c_hour + ":" + c_min +":" + c_sec;
                           }
    </script>

6 个答案:

答案 0 :(得分:2)

由于所有PHP脚本都在服务器上运行,因此在没有AJAX之后或页面加载时无法执行此操作,但这可能会破坏PHP变量的用途。但是,您可以使用php变量定义javascript变量。

<?php
  $foo = "bar";
?>
<script type="text/javascript">
  foo = '<?php echo $foo; ?>';
  alert(foo);
</script>

如果您需要的是将日期和时间转换为php变量,我还会查看PHP date function

答案 1 :(得分:2)

正如其他人所提到的,PHP在服务器上运行 - Javascript在客户端上运行。我认为你可能会更多地了解这意味着什么,以及为什么没有“简单的答案”来解决这个问题。

服务器是存储代码的计算机 客户端是您正在查看结果页面的浏览器。
这可能在同一台计算机上,尤其是在测试时,但它们仍然被认为是独立的实体。

运行PHP + Javascript应用程序时:

1:浏览器向服务器发出请求 2:服务器提取相关的PHP,对其进行处理,并将其插入到适当位置的html中 3:结果数据(html + javascript)通过互联网发送到浏览器,浏览器接收它 4:浏览器显示原始数据(如html) 5:浏览器压缩javascript并相应地更改html 6:页面上的其他活动可能导致#4不断重复,或者返回#1。

现在,人们推荐Ajax调用的原因如下:Ajax调用将在后台向服务器发出请求。它不会导致页面重新加载,因此跳过步骤#4。它只是接收相关数据,处理它,并根据需要对现有的html进行更改。

但这也意味着您可以向服务器发送请求以运行PHP的特定部分 - 将数据保存到数据库,请求新的数据,运行计算... < / p>

然而。每种类型的请求都需要PHP中自己的新访问点 - 如果你愿意,还需要一个没有html的PHP页面。 Json通常是传输的首选数据格式,尽管xml(AJAX中的X)仍然使用。

这不是一个简单的行为,并且在代码中引起很多复杂化......但是因为PHP可以构建javascript,但是javascript不能直接影响PHP,通常会进行数据传输单行道,这是将javascript结果返回给服务器的唯一方法,以便PHP可以处理它。您不能只是'更改PHP变量' - 您需要再次从头开始PHP,并初始化所有相关变量,以获得正确的结果。你不是在离开的地方,你正在提出一个全新的要求。

希望这有帮助!

答案 2 :(得分:1)

你可以通过ajax call将你的javascript变量发送到php页面。这就是你的工作方式

    function loadXMLDoc()
    {
var a=document.getElementById('id').value//this is your js variable to be sended to a php page
    var xmlhttp;
    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)
        {
       //response
        }
      }
    xmlhttp.open("GET","Xyz.php?variable="+a,true);
    xmlhttp.send();

    }

then on your php page get the values by using $_REQUEST['variable']

    $PHP_variable=$_REQUEST['variable'];

答案 3 :(得分:0)

如果由于某种原因想要在PHP中使用变量,唯一的方法是通过Ajax调用。这会将变量发送到服务器,您可以按照自己的意愿对待它,并且可以将其发送回Ajax并在页面中执行您想要的操作。

但是你将无法在PHP中使用Javascript的结果,就像你从JS转换为PHP一样,因为JS是客户端和PHP服务器端。

答案 4 :(得分:0)

不,不是没有AJAX(在这种情况下不起作用)。 PHP是一种服务器端语言,用于生成网页,然后网络服务器将该网页发送给用户。 Javascript是一种客户端语言(在用户的浏览器中运行);因此,它总是在所有PHP完成后运行。您可以使用PHP生成JavaScript,但不能反过来。

在PHP中,要获取该格式的当前时间,请使用$currentTime=date('h:i:s')

答案 5 :(得分:0)

PHP在服务器上运行;当浏览器执行javascript时(如果确实如此 - 你永远无法确定)php不再运行了。 在这种情况下,您可以使用其日期对象/函数将整个逻辑移动到php。有几种方法可以做到:

  • 如果您要将控制权传递给某些PHP代码(请求新页面或AJAX调用),则可以通过php计算时间作为其必须执行或作为GET或POST参数传递给它的一部分。
  • 如果必须在屏幕上打印t变量,主页面可以在php端进行