2016-09-10 3 views
1

Ich habe eine Datei add.php, die zwei Zahlen addiert und das Ergebnis zurückgibt. Meine andere Datei list.php enthält eine Liste mit Zahlen, dieerhalten Daten von einer PHP-Seite in einer synchronen Weise

$list = array (0=> 2,3 
1=>4,5 
2=>6,7); 

Dieses Array hinzugefügt werden müssen länger sein kann, also muss ich es Daten mit einem for Schleife wie folgt lesen:

for($i=0;$i<count($list);$i++) { 
//something needs to be done here 
} 

Was ich Möchten Sie alle Paare mit einem Senden-Schaltfläche hinzufügen. Mein Problem ist, dass jedes Zahlenpaar nur hinzugefügt werden muss, wenn der vorherige ein Ergebnis hat. Ich möchte zum Beispiel ein Ergebnis Array wie folgt zu ändern:

No1 | No2 | result 
---- | ---- | -------- 
2 | 3 | on queue 
---- | ---- | -------- 
4 | 5 | on queue 
---- | ---- | -------- 
6 | 7 | on queue 

No1 | No2 | result 
---- | ---- | -------- 
2 | 3 | 5   
---- | ---- | -------- 
4 | 5 | on queue 
---- | ---- | -------- 
6 | 7 | on queue 

No1 | No2 | result 
---- | ---- | -------- 
2 | 3 | 5 
---- | ---- | -------- 
4 | 5 | 9 
---- | ---- | -------- 
6 | 7 | on queue 

No1 | No2 | result 
---- | ---- | -------- 
2 | 3 | 5 
---- | ---- | -------- 
4 | 5 | 9 
---- | ---- | -------- 
6 | 7 | 13 

ich mit Ajax versuchte zunächst, wie folgt aus:

<script> function loadDoc(fid1,fid2) { 
     var xhttp = new XMLHttpRequest(); 
     xhttp.onreadystatechange = function() { 
     if (this.readyState == 4 && this.status == 200) { 
     document.getElementById('content').innerHTML = xhttp.responseText; 
     } 
     }; 
     xhttp.open('POST', 'play2.php', true); 
     xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); 
     xhttp.send('number1=$No1&number2=$No2'); 
     } 
     </script> 

wo $No1, $No2$list[$i][0],$list[$i][1] sind. Also, dies ist fehlgeschlagen, ich vermute, Ursache für die asynchrone Natur von Ajax, aber ich habe keine anderen Ideen darüber, wie es geht. Was ich tun möchte, ist komplizierter als das, aber es war einfacher, es mit diesem Beispiel zu erklären. Auch ich möchte dies ohne Datenbankaufrufe tun, wenn es möglich ist.

Antwort

0

Ich schaffte es mit Asynchron mit Ajax zu machen: false wie diese

<script> 
     $.ajax({ 
      type: "POST", 
      url: "play2.php", 
      data: {number1:"'.$No1.'" , number2:"'.$No2.'"}, 
      async: false, 
      success : function (data) { 
       $("#content").replaceWith(data); 
       } 
      }); 
</script> 

ich alle Wertepaare senden setzen diese für Schleife in ein und es funktionierte, wie ich wollte.

Verwandte Themen