2

私がやろうとしているのは、スクリプトタグ内でphpループ内でjavascriptを実行することです。例えば:

<script>
$('#mydiv').mouseover(function(){
time();
function time(){
<?php  
    $secs = 45; 
    $secs--;
if($secs <= 25){
?>//javascript code here 
}
});
</script>

私の主な目的は、ユーザーがdivの上にマウスを置くと、javascript関数が実行され、そのjavascript関数内にphpifconitionsがあります。時間が25未満の場合は、指定されたjavascriptコードを実行します。次に、時間が10未満の場合は別の条件で、別のjavascript関数を実行します。任意のタイプのヘルプを歓迎します。ありがとう

4

4 に答える 4

7

JavaScriptはクライアント側のスクリプトであり、PHPはサーバー側のスクリプトです。したがって、サーバーに対してAJAX呼び出しを行うか、純粋なJSを実行します。

AJAX + PHP:

<script>
    $('#mydiv').mouseover(function(){
        $.ajax({
            url: 'secs.php',
            success: function(data) {
                var secs = parseInt(data);

                if(secs <= 10) {
                    // do stuff
                }
                else if(secs <= 25) {
                    // do stuff
                }
            },
        });
    });
</script>

secs.php:

<?php
    session_start();

    if(!isset($_SESSION['secs'])) $_SESSION['secs'] = 45;
    else echo $_SESSION['secs'] --;
?>

純粋なJS:

<script>
    var secs = 45;

    $('#mydiv').mouseover(function(){
        secs --;

        if(secs <= 10) {
            // do stuff
        }
        else if (secs <= 25) {
            // do stuff
        }
    });
</script>
于 2012-06-18T09:12:41.583 に答える
3

PHPはサーバー上で実行され、テキストを出力します。

次に、ブラウザはそのテキストをHTML / JS/etcとして解釈します。

新しいHTTPリクエストを発行しない限り、クライアント側のイベントに応答してPHPを実行することはできません。

ページビルド時にPHPが気にする値がわかっている場合は、そのデータを変数に格納してJavaScriptを生成できます。

于 2012-06-18T09:07:21.120 に答える
0

Javascript内でPHPを使用することはできません。サーバー側の操作が必要な場合は、AJAXを使用する必要があります。jQueryにはそれがうまく実装されています。

于 2012-06-18T09:08:48.220 に答える
0

phpはサーバーで実行され、javascriptはクライアントで実行されるため、これを行うことはできません。これは、PHPコードがサーバー上でDHTMLに変換され、クライアントに送信されることを意味します。しかし、javascriptはクライアント上で実行されます...したがって、両方を組み合わせたい場合。クライアントからサーバーを再度要求する必要があります(たとえば、ajaxによって)。

しかし、コードに戻りましょう...なぜjavascriptで時間をカウントしないのですか?あなたはあなたが望むものを手に入れることができますvar date = new Date(); time = date.getCurrentTime()

于 2012-06-18T09:11:10.393 に答える