javascriptなしでエコーを更新できるかどうか知りたいですか?
例えば
<?php
for ($i = 1; $i < 100; $i++){
echo $i;
}
?>
ただし、別の行を追加せずに番号を更新するだけで、100まで別の行を更新します。これは可能ですか、それともjavascriptを使用した場合にのみこれを実現できます。
現在処理されているファイルの量を知るために、カウンターを出力する必要があります。
100ページ中45ページ
javascriptなしでエコーを更新できるかどうか知りたいですか?
例えば
<?php
for ($i = 1; $i < 100; $i++){
echo $i;
}
?>
ただし、別の行を追加せずに番号を更新するだけで、100まで別の行を更新します。これは可能ですか、それともjavascriptを使用した場合にのみこれを実現できます。
現在処理されているファイルの量を知るために、カウンターを出力する必要があります。
100ページ中45ページ
いいえ。クライアント側(JavaScriptなど)のみ。ページをリロードせずにこれを実現したい場合、ブラウザからの要求が来たときにPHPが起動した場合、PHPはどのように関与する可能性がありますか?
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... */
}
});
}