3

好的,所以我要做的是触发 PHP 代码,只有当 if 条件为真(在 javascript 中)时,我才知道 php 是服务器端,而 javascript 是客户端。php 代码的包含工作完美,除了 1 件事,它实际上是在页面加载时触发的,而不是在 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>
4

4 回答 4

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&parameters=sent", false );
    xmlHttp.send( null );

    document.getElementById('more').innerHTML += xmlHttp.responseText;
    document.getElementById('more').style.visibility='visible';
    flag=true;
    }
...
于 2012-09-24T14:32:44.000 回答
3

php 代码是服务器端的,因此它在 javascript 之前执行,因此 javascript 无法控制 php 的功能。您需要使用 Ajax 脚本使 javascript 可以从服务器请求一个 php 文件,然后它就会工作。

于 2012-09-24T14:34:43.297 回答
1

你不能那样做......你自己说过,PHP是服务器端的。为了运行 PHP,您必须让浏览器针对您的 Web 服务器查询某些内容。这绝对不会像您预期的那样工作......它总是会被包括在内:

innerHTML +="<?php include_once('../../Includez/Traffic/Traffic_Code.php'); ?>";

但是,您可以使 JavaScript 从服务器获取更多内容,该服务器可以运行一些 PHP 代码并将新内容返回到您的页面......

于 2012-09-24T14:32:30.087 回答
0

您是否尝试使用“加载”解决方案?

<div id="special_block"></div>

<script>

   var a = 1;

   if (a == 1){
     $('#special_block').load('code.php');
   }

</script>
于 2016-12-15T09:18:52.047 回答