2017-02-05 4 views
0

Ich habe folgenden Code, um eine Abfrage auf der Datenbank auszuführen. es gibt eine Liste von Objekten, eines für jede Zeile Ergebnis aus der Abfrage:durchlaufen jede Zeile von einem AJAX-Aufruf zurückgegeben

function getcontent() 
{ 
    var data = { 
     "id": "<?php echo $stournid; ?>" 
    }; 

    data = $(this).serialize() + "&" + $.param(data); 
    $.ajax({ 
     type: "POST", 
     dataType: "json", 
     url: "response.php", 
     data: data, 
     success: function(response) { 
      //**************************** HERE!!!! 
     }, 
     error: function(jqXHR, textStatus, errorThrown) { 
     console.log(JSON.stringify(jqXHR)); 
     console.log("AJAX error: " + textStatus + ' : ' + errorThrown); 
     } 
    }); 
return false; 
} 

Die response.php Datei enthält diese:

<?php 
$id = ""; 
if (is_ajax()) { 
    if (isset($_POST["id"]) && !empty($_POST["id"])) { //Checks if action value exists 
    $id = $_POST["id"]; 
    querydata($id); 

    } 
} 

function is_ajax() { 
    return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'; 
} 

function querydata($id){ 

require_once('dbconfig.php'); 
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname); 

if ($mysqli->connect_error) { 
    die('Errore di connessione (' . $mysqli->connect_errno . ') ' 
    . $mysqli->connect_error); 
} 

$myArray = array(); 

    if ($games = $mysqli->query("my query is here.. pretty long but working correctly.")){ 
     while($row = $games->fetch_array(MYSQL_ASSOC)) { 
       $myArray[] = $row; 
     } 
    echo json_encode($myArray); 
} 
} 
?> 

hier ist die zurückgegebenen Daten:

[{"id":"1435","location":"Merano","date":"2017-01-26","eventname":"Collaudo","machines":"|6|","id_tournament":"2","allowedcat":"|A||B||C||D|","category":"test 1","chartsize":"8","exclusive":"0","subscriptionsactive":"0","maxsubscriptions":"512","autoplay":"3","machinespergame":"1","id_subtournament":"14","id_gamer1":"57","id_gamer2":"55","called":"2","callreadytime":"13:08:07","starttime":"22:12:19","endtime":"22:20:03","id_winner":"57","id_loser":"55","playsequence":"00001","tabsequence":"A00010001","dest_winner":"B00010001-1","dest_loser":"C00010001-1","connectionname":"","p1name":"Calamante Lorenzo","p2name":"Badiali Maurizio"}, 
{"id":"1436","location":"Merano","date":"2017-01-26","eventname":"Collaudo","machines":"|4|","id_tournament":"2","allowedcat":"|A||B||C||D|","category":"test 1","chartsize":"8","exclusive":"0","subscriptionsactive":"0","maxsubscriptions":"512","autoplay":"3","machinespergame":"1","id_subtournament":"14","id_gamer1":null,"id_gamer2":null,"called":"0","callreadytime":"00:00:00","starttime":"00:00:00","endtime":"00:00:00","id_winner":"0","id_loser":"0","playsequence":"00015","tabsequence":"W00010001","dest_winner":"","dest_loser":"1","connectionname":"","p1name":null,"p2name":null}] 

Was ich tun möchte, ist in der Javascript, gehen Sie durch alle zurückgegebenen Zeilen nacheinander und aktualisiert einige divs entsprechend. Ich habe Schwierigkeiten, die zurückgegebenen Zeilen zu iterieren.

Jede Hilfe wird geschätzt. Dank

+0

Wie die Daten aussehen? Veröffentlichen Sie ein Beispiel für diese JSON-Datei! –

+0

getan, aktualisiert mit Daten – sharkyenergy

Antwort

2
success: function(response) { 
    // redponse is an array of objects (so lets loop through it using forEach) 
    response.forEach(function(row) { 
     // row is a row (object) from the array 
     var id = row.id; 
     var location = row.location; 
     var date = row.date; 
     // ... you get the idea 
     // do something with the current row (maybe create a div or table row ...) 
    }); 
}, 

Hinweis:Array.prototype.forEach wie eine Schleife ist aber besser. Überprüfen Sie die Dokumente.

Möchten Sie forEach nicht verwenden?

Wenn Sie nicht forEach verwenden möchten, können Sie einen alten for wie diese verwenden:

success: function(response) { 
    // using for is not very pretty, hein? 
    for(var i = 0; i < response.length; i++) { 
     // response[i] is the i-th row of the array 
     var id = response[i].id; 
     var location = response[i].location; 
     var date = response[i].date; 
     // ... you get the idea 
     // do something with the current row (maybe create a div or table row ...) 
    }); 
}, 
+0

funktioniert wie ein Charme .. vielen Dank! – sharkyenergy

Verwandte Themen