3

さて、私がやろうとしているのはPHPコードをトリガーすることです。これは、if条件が(javascriptで)trueの場合にのみ、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、プログラムで head に追加のタグを追加できます。サーバー上で何かをしたい場合は、サーバー上のスクリプトを簡単に呼び出すことができます。

if が true の場合にのみ、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の動作を制御できません。javascript がサーバーから php ファイルを要求できるようにするには、Ajax スクリプトを使用する必要があります。

于 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 に答える