Im Folgenden finden Sie einige Abfragen, die letztendlich ein Array erstellen.So erhalten Sie PHP-Array-Ergebnisse mit JQuery
if(isset($_POST['getarray'])){
try{
$ret = array();
$stmt = $db->prepare('SELECT groupdate, groupid
FROM participationtemp
WHERE memberid = :memberid
AND groupid = :groupid
ORDER BY groupdate, groupid DESC');
$stmt->bindValue(':groupid', $_POST['groupid'], PDO::PARAM_INT);
$stmt->bindValue(':memberid', $_SESSION['memberid'], PDO::PARAM_INT);
$stmt->execute();
$result = $stmt->fetchAll();
foreach($result as $row){
$attenddate = $row[0];
$stmt = $db->prepare('SELECT h.clientid, attend, attend_date
FROM history AS h
INNER JOIN suspended AS s on s.clientid = h.clientid
WHERE h.memberid = :memberid
AND h.groupid = :groupid
AND attend_date = :attenddate
AND suspend = "N"');
$stmt->bindValue(':memberid', $_SESSION["memberid"], PDO::PARAM_INT);
$stmt->bindValue(':groupid', $_POST['groupid'], PDO::PARAM_INT);
$stmt->bindValue(':attenddate', $attenddate, PDO::PARAM_STR);
$stmt->execute();
$result = $stmt->fetchAll();
foreach($result as $row) {
array_push($ret, ['id' => $row[0], 'gdate' => $row[2]]);
}
}
echo json_encode($ret);
exit();
} catch (PDOException $ex){
mail_error($ex);
}
}
Nachdem auf JQuery Rückkehr alert(re);
zeigt erfolgreich das Array erstellt I.
success:function(re){
alert(re);
Aber ich habe Probleme mit den Array-Daten zugreifen. Ohne Erfolg, das ist, was ich versucht habe:
data = $.parseJSON(re);
$.each(data, function(i, val) {
alert(i + "=" + val);
});
und diese:
data = $.parseJSON(re);
$.each(data, function(i, val) {
if(i == "id"){
alert(i + "=" + val);
}
if(i == "gdate"){
alert(i + "=" + val);
}
});
Ich habe auch versucht dot notation
.
Ich habe noch nie JSON verwendet und verstehe nicht, warum ich die Array-Daten nicht abrufen kann. Jede Hilfe wird geschätzt. Vielen Dank.
Screenshots sind böse. Bitte kopieren Sie alle Textausgaben. –
Was enthielt die Warnung bei Ihrem ersten Versuch? Der JSON stellt ein Array von Objekten dar, also würde ich erwarten, dass Sie etwas wie "0 = [Objektobjekt]" sehen. Ist das passiert oder hat sich der Alarm nicht einmal gezeigt? –
'Ich habe auch Punktnotation ausprobiert. - wo ist es? und posten Sie bitte die Ausgabe von 'alert (i + "=" + val); '. – ravisachaniya