2017-02-20 3 views
-2

Quelle von Post:anzeigen Ausgeführte Abfrage einer an der Zeit

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

Ergebnis aus Souce oben:

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

weil PHP serverseitige Skript. Ergebnis gleichzeitig anzeigen.
Mein Ziel ist es, zu zeigen, dass jede Zeile einzeln ausgeführt wurde.
meine Idee ist Ajax zu verwenden.

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> 
} 

Welche Best Practice, um Ideen oben zu verwenden? musste ich ajax foreach einzahlen oder nur einmal anrufen?

+0

Wie lange dauert es, bis eine Abfrage speichert, dass sie nacheinander angezeigt werden sollen? jeweils mehrere Sekunden? –

+0

Ergebnis ist 1000 Zeile mehr, nur um Prozess zu überwachen. – hooman182

+0

1000 Einsätze ist nur eine Sekunde. Sie werden mehr Zeit mit der Überwachung verschwenden und 1000 HTTP-Anfragen machen –

Antwort

0

Es ist besser, speichern alle Abfrage Ajax in einem Array ob Objekte und es am Ende nennen:

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>"; 

Und wenn Sie q Bibliothek für Versprechungen verwenden, werden Sie tun, wenn und sauber. Ich habe den Code für make ajax call innerhalb einer Funktion geändert.

+0

Ihre Idee ist, zuerst PHP zu beenden und dann Ajax auszuführen. Ich denke, Ihre suggestion mehr Zeit sparen, um Code auszuführen – hooman182

+0

Ich schlage das vor, weil Code wird rehusable, und potenter für debug –

Verwandte Themen