1

このスクリプトを使用して、ID がニュースである DIV をリロードします。

<script type="text/javascript">
    var auto_refresh = setInterval(function() {
        <? if ($lim >= 5) 
            $lim = 0;
        else 
            $lim = $lim + 2;

        if ($cnt == 1){
            $lim = 0; 
            $cnt += 1;
        } ?>

        $('#news').load('update.php?lim=<? echo $lim ?>');
    }, 10000); // refresh every 10000 milliseconds
</script>

update.php には、lim の値を受け取るためのこのコードが含まれています。

$lim=$_GET['lim'];

しかし、10 秒ごとに 'lim' 値が 0 として送信されます。スクリプトの条件に基づいて 'lim' 値を更新する必要があります。

echo コマンドを使用して $lim 値の update.php をチェックインしました。常に 0 です。私のコードのバグは何ですか?

4

2 に答える 2

3

サーバーサイド/クライアントサイドとは何かについて少し混乱しているようです。$limは PHP 変数であるため、サーバー側でのみ使用できます。ロジックを JavaScript に変更する必要があります。これを試して:

var lim = <? echo $lim ?>; // assuming lim is always a number this will work.
var cnt = 0; // just guessed at what this should be initially.
var auto_refresh = setInterval(function() {
    if (lim >= 5) 
        lim = 0;
    else 
        lim = lim + 2;

    if (cnt == 1){
        lim = 0; 
        cnt += 1;
    }

    $('#news').load('update.php?lim=' + lim);
}, 10000); // refresh every 10000 milliseconds

limまたは、変数を PHP に渡し、新しい値を受け取るタイマーの反復ごとに AJAX 要求を行うようにロジックを変更することもできます。

于 2012-05-22T15:23:29.727 に答える
1

PHP コードは、ページがレンダリングされるときに 1 回だけ実行されます。更新されることはありません。ページがレンダリングされると、ページ内のコードは次のようになります。

<script type="text/javascript">
    var auto_refresh = setInterval(function() {
        $('#news').load('update.php?lim=0');
    }, 10000); // refresh every 10000 milliseconds
</script>

JavaScript で lim パラメーターの値を変更する場合は、JavaScript で計算する必要があります。PHP で開始値を設定できますが、ここでも、このようなコードでは PHP から単一の値しか取得できません。

于 2012-05-22T15:24:02.813 に答える