当我的Javascript代码运行时,为什么我的PHP变量没有改变?

时间:2011-04-29 21:40:17

标签: php javascript

我有一个计数器计时器,我试图阻止一个简单的旁路下载而无需等待。

所以在主类中我声明了布尔值

$allow_download = false;
时间过后

Javascript

else 
{
    textDLShow.style.display = 'none';
    divDLShow.style.display = '';
    "<?php $allow_download = true;?>";
}

和第二课

if($allow_download == false)
echo "Test";

好吧,当时间过去时,布尔值没有设置为正值。有什么建议??

感谢您的时间!!

3 个答案:

答案 0 :(得分:2)

JavaScript无法设置PHP变量的值,因为JavaScript解释器无法解析PHP(无论如何变量都在同一个解释器中,因为JavaScript是在客户端的浏览器而不是服务器上运行的。)

为了做到这一点,您需要使用JavaScript编写一个新的请求,以便将$allow_download设置为true,然后提供下载。

您需要阅读ajaxdocument.createElement(因为这样做的一种方法可能是在时间结束后创建指向下载位置的iframe)并{{3 }}

答案 1 :(得分:0)

PHP在您的服务器上运行,当您的客户端javascript运行时,您创建的变量不再在范围内。没有办法解决这个问题,除非你想做一些更重的东西,比如存储在数据库中,IP地址可以在什么时候下载哪些文件。

答案 2 :(得分:0)

php可以运行javascript,但javascript永远不能运行php,理所当然 你可以做的最好的事情是运行一个ajax脚本,以便在后台调用php 但真的为什么还要为此而烦恼,你可以在php函数中包含javascript并让它完成这项工作