好的,所以我要做的是触发PHP代码,只有当if条件为真时(在javascript中),我才明白php是服务器端,而javascript是客户端。除了1件事之外,php代码的包含工作完美,它实际上是在页面加载时触发,而不是在if条件发生时触发。如果你能帮我怎么做,我们将非常感激。我想只在if条件为真时才包含php文件
提前致谢
这是我正在使用的代码:
<html>
<script src="//cdnjs.cloudflare.com/ajax/libs/visibility.js/0.5/visibility.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>
<script>
var seconds=20;
var flag=false;
$(document).ready(function(){
if (!flag)
Visibility.every(1000, tick);
function tick()
{
display();
if (seconds>0)
{
seconds--;
}
else
{
if (!flag){
document.getElementById('more').innerHTML +="<?php include_once('Code.php');
?>";
document.getElementById('more').style.visibility='visible';
flag=true;
}
}
}
function display()
{
$("#timer").html(seconds);
}
});
</script>
<div id="TrafficHeader" style="height:100px; background-color:grey; padding:20px;">
<div id="timer"></div>
<div id="more" style="visibility: hidden;"><a href="http://www.double-it.com/Traffic/index.php">View Next Ad</a></div></div>
<iframe id="myframe" src="<?php echo ''.$URL;?>" height="100%" width="100%" frameborder="0">
</iframe>
</body>
</html>
答案 0 :(得分:5)
这是不可能的,至少不是你的方式
原因是在服务器完成对if
脚本的评估之后很久就会在客户端计算机上评估php
条件。
第一台服务器必须完成处理您的PHP脚本,然后想象它必须打包它然后将整个包发送到客户端,然后解压缩它并呈现html并评估html中的javascript,或者询问外部文件像图像,CSS或其他脚本文件。
如果您尝试添加一些额外的javascript,则可以以编程方式在头部添加额外的script
标记。如果您想在服务器上执行某些操作,则可以轻松地在服务器上调用脚本。
以下是仅当if为真时才能从javascript执行该脚本的方法:
...
if (!flag){
xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", "http://link/to/your/code.php?and=special¶meters=sent", false );
xmlHttp.send( null );
document.getElementById('more').innerHTML += xmlHttp.responseText;
document.getElementById('more').style.visibility='visible';
flag=true;
}
...
答案 1 :(得分:3)
php代码是服务器端,因此它在javascript之前执行,因此javascript无法控制php的功能。您需要使用Ajax脚本使javascript可以从服务器请求一个php文件,然后它就能工作。
答案 2 :(得分:1)
你不能这样做......你自己说,PHP是服务器端的。为了运行PHP,您必须让浏览器对您的Web服务器进行查询。这绝对不会像你想象的那样有效......它将永远包括在内:
innerHTML +="<?php include_once('../../Includez/Traffic/Traffic_Code.php'); ?>";
然而,您可以使JavaScript从服务器获取更多内容,该服务器可以运行一些PHP代码并向页面返回一些新内容......
答案 3 :(得分:0)
您是否尝试使用“加载”解决方案?
<div id="special_block"></div>
<script>
var a = 1;
if (a == 1){
$('#special_block').load('code.php');
}
</script>