2016-04-04 10 views
0

私はHTMLフォームを持っている:、HTMLでループを進めるには?

function startCode(Request $request) { 
    $ID = $request->id; 
    $leng = 2000; 
    for ($i = 0; $i < $leng; $i++) { 
     // this code insert new record to DB, or edit record which was existed, 
     // it take some seconds, then with $leng = 2000 or more, it take very long times. 
     } 
    } 

を彼らが、サーバ側の進捗状況を見るようにする方法があります:それは、コントローラ(Laravelフレームワーク)内の関数を呼び出す

<form action="/startCode" method="post"> 
    <input name="id" /> 
    <input type="submit" /> 
</form> 

彼らはまだ動作していることを確認?

ところで、新しい大量レコードを挿入する方法はありますか?各ループの代わりに。

答えて

0

サーバー側コードが実行されている間は、HTMLにプログレスバーを追加できません。

これを達成する唯一の方法は、行ごとにデータを送信するか、連鎖したAjaxリクエストを介して小さなバッチで、進行状況をJavascriptで追跡し、各Ajaxリクエストの戻り時に進行状況を視覚化することです。

そして、最後の文で:Laravelモデルは、バッチ挿入メソッドを持っています:

http://stackoverflow.com/questions/12702812/bulk-insertion-in-laravel-using-eloquent-orm

関連する問題