我是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>
答案 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。有几种方法可以做到: