我有一个计数器计时器,我试图阻止一个简单的旁路下载而无需等待。
所以在主类中我声明了布尔值
$allow_download = false;
时间过后和 Javascript
else
{
textDLShow.style.display = 'none';
divDLShow.style.display = '';
"<?php $allow_download = true;?>";
}
和第二课
if($allow_download == false)
echo "Test";
好吧,当时间过去时,布尔值没有设置为正值。有什么建议??
感谢您的时间!!
答案 0 :(得分:2)
JavaScript无法设置PHP变量的值,因为JavaScript解释器无法解析PHP(无论如何变量都在同一个解释器中,因为JavaScript是在客户端的浏览器而不是服务器上运行的。)
为了做到这一点,您需要使用JavaScript编写一个新的请求,以便将$allow_download
设置为true,然后提供下载。
您需要阅读ajax
,document.createElement
(因为这样做的一种方法可能是在时间结束后创建指向下载位置的iframe)并{{3 }}
答案 1 :(得分:0)
PHP在您的服务器上运行,当您的客户端javascript运行时,您创建的变量不再在范围内。没有办法解决这个问题,除非你想做一些更重的东西,比如存储在数据库中,IP地址可以在什么时候下载哪些文件。
答案 2 :(得分:0)
php可以运行javascript,但javascript永远不能运行php,理所当然 你可以做的最好的事情是运行一个ajax脚本,以便在后台调用php 但真的为什么还要为此而烦恼,你可以在php函数中包含javascript并让它完成这项工作