2017-02-20 1 views
-2

ソース:上記の源泉からショー実行されたクエリつのポストから

foreach($_POST as $key=>$value){ 
echo "$key $value<br>"; 
} 

結果:

key1 value1 
key2 value2 
key3 value3 
... 
key**n** value**n** 

PHPはサーバー側のスクリプトですので。結果は同時に表示されます。
私の目標は、すべての行が一度に1つずつ実行されたことを示すことです。
私のアイデアは、実行するためにajaxを使用しています。

foreach($_POST as $key=>$value){ 
echo" 
<script> 
$.ajax({ 
    url: "save.php", 
    type: "POST", 
    data: "key="+$key,"value="+$value, 
    dataType: "text", 
    success: function(data){ 
     if (data==1){ 
      $("#result").append("<div><?=$key." and ".$value?> has been saved</div>"); 
     } 
    } 
}); 
</script> 
} 

上記のアイデアを使用するベストプラクティスは何ですか?私はajax foreachアイテムを置く必要がありますか、それとも1回だけ呼び出すのですか?

+0

1つのクエリが1つずつ表示されることを保存するのにどれくらい時間がかかりますか?数秒ごとに? –

+0

結果は1000行以上で、プロセスを監視するだけです。 – hooman182

+0

の挿入はわずか1秒です。あなたは監視に多くの時間を費やすでしょう。1000 HTTPリクエストを –

答えて

0

その優れた店舗1つの配列OBオブジェクト内のすべてのクエリのAJAXと最後にそれを呼び出す:

echo " 
    <script> 
    var _ajax = [];"; 
    foreach($_POST as $key=>$value){ 
    echo" 
    _ajax.push({ 
    data: "key="+$key,"value="+$value 
    }); 
    "; 
    } 
    echo " 
    for(var i=0;i<_ajax.length;i++) { 
makeCall(_ajax[i]); 
} 
function makeCall(value){. 
$.ajax({ 
     url: "save.php", 
     type: "POST", 
     data: value, 
     dataType: "text", 
     success: function(data){ 
      if (data==1){ 
       $("#result").append("<div><?=$key." and ".$value?> has been saved</div>"); 
      } 
     } 
    }); 
} 

    } 

    </script>"; 

そして、あなたは約束のためqライブラリを使用する場合は、一度、よりクリーンなyoullはやります。 関数内でmake ajax呼び出しのコードを変更しました。

+0

あなたのアイデアは、まずPHPを完成させ、次にajaxを実行することです。私はあなたのsugestionコードを実行するより多くの時間を節約すると思う – hooman182

+0

私はこれをお勧めします、コードはより再利用可能で、より強力なデバッグ –

関連する問題