如何在Javascript条件下触发php代码

时间:2012-09-24 14:27:42

标签: php javascript html include

好的,所以我要做的是触发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>

4 个答案:

答案 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&parameters=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>