2

カウンターを表示したいのですが、データベースレコードを更新しているところを書いています。

ここにカウンター値を印刷しています-

            flush();
            echo "<hr><div align=\"center\">";
            echo 'loading ..... '.$counter; //echo "</br>";
            echo "</div>";
            $counter++;

しかし、それは再び次の行に値を出力しています。

ここに画像の説明を入力してください

しかし、私は値をこのように更新したい
ここに画像の説明を入力してください

これは変わり続けるでしょう。

私を助けてくれるか、私を導いてください。

4

2 に答える 2

3

ここで行っているのはHTMLの生成です。一度書かれると、「取り戻す」ことはできません。

カウンターを「更新」するには、ドキュメントオブジェクトモデル操作と呼ばれる操作を実行する必要があります(DOMは、もちろん、すべてのHTMLタグを含め、Webサイトを構成するすべてのものです)。これは通常JavaScriptで行われ、jQueryはタスクをさらに簡素化できます。

さらに、データベースの挿入は非常に迅速に(数分の1秒で)行われるため、ユーザーの前に「リアルタイム」で行われている更新のカウンターを表示する理由は実際にはありません。

PHPの実行時にサイトの情報を動的に更新することを本当に主張する場合は、AJAXを調べる必要があります。

于 2012-11-28T07:23:51.063 に答える
1

これを行うには、Javascriptを使用する必要があります。あなたは次のようなものを使うことができます:

    flush();
    echo "<hr><div align=\"center\">";
    echo 'loading ..... '. '<span class = "toDecr">' . $counter . '</span>';
    echo "</div>";
    $counter++;

次に、これを行うjQueryを使用してスクリプトを作成します(jQueryは必須ではなく、生のJavascriptで実行できますが、jQueryの方が間違いなく簡単です):

    $('.toDecr').html(parseInt($('.toDecr').html(), 10) - 1)

デクリメントの間に待機したい遅延がわからないので、空白にします(毎秒実行したい場合は、ループを使用するか、PHPの実行に本当に依存している場合はAjax行く方法です)。

于 2012-11-28T07:34:17.647 に答える