0

javascriptなしでエコーを更新できるかどうか知りたいですか?

例えば

<?php
for ($i = 1; $i < 100; $i++){
    echo $i;
}
?>

ただし、別の行を追加せずに番号を更新するだけで、100まで別の行を更新します。これは可能ですか、それともjavascriptを使用した場合にのみこれを実現できます。

現在処理されているファイルの量を知るために、カウンターを出力する必要があります。

100ページ中45ページ

4

2 に答える 2

2

いいえ。クライアント側(JavaScriptなど)のみ。ページをリロードせずにこれを実現したい場合、ブラウザからの要求が来たときにPHPが起動した場合、PHPはどのように関与する可能性がありますか?

于 2012-11-23T16:20:38.600 に答える
1

PHPはサーバーサイド言語です。スクリプトが要求され、実行されてから、クライアント送信されます。

JavaScriptはクライアント側でのみ実行されます。つまり、PHPスクリプトにリクエストを送信できますが、常にスクリプトの結果が返されます。

唯一のオプションはAJAXリクエストです。基本的に、一度に1つのファイルを移動するPHPスクリプトを作成します。JavaScriptは、1から100までのループを処理し、さまざまなパラメーターを使用して100の同期要求をPHPスクリプトに送信します。次に、進行状況を追跡し、HTMLページのDOM要素を更新できます。

jQueryには、使い始めることができる優れた.ajax()関数があります。以下は簡単な例です。すぐには機能しませんが、それを基に構築して機能させることができます。

PHP

<?php
    $file = $_POST['file'];
    $destination = $_POST['destination'];
    // Move the stuff!
?>

JavaScript

var files = ['test.txt', 'test2.txt' /* ... */], /* Your list of files... */
    destination = '/path/to/send/to/the/php/script/';

for(var i = 0; i < files.length; i ++){
    $.ajax({
        async: false,
        url: 'script_to_move_files.php',
        data: { file: files[i], destination: destination },
        success: function(){
            /* File moved! Update a progress bar or something... */
        },
        error: function(){
            /* File wasn't moved successfully... */
        }
    });
}
于 2012-11-23T16:21:21.533 に答える