以下は、最終的に配列を構築するいくつかのクエリです。JQueryを使用してPHP配列結果を取得する方法
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);
}
}
JQueryに戻った後、alert(re);
は、正常に配列を作成したことを示しています。
success:function(re){
alert(re);
しかし、私は配列データへのアクセスのトラブルを抱えています。
data = $.parseJSON(re);
$.each(data, function(i, val) {
alert(i + "=" + val);
});
と、この:
data = $.parseJSON(re);
$.each(data, function(i, val) {
if(i == "id"){
alert(i + "=" + val);
}
if(i == "gdate"){
alert(i + "=" + val);
}
});
を私もdot notation
を試してみた成功せず、これは私が試したものです。
$.each(re.id, function(i, val) {
alert(i + "=" + val);
}
});
$.each(re.gdate, function(i, val) {
alert(i + "=" + val);
});
以前はJSONを使用していなかったので、なぜ配列データを取得できないのか分かりません。どんな助けもありがとう。ありがとう。
スクリーンショットは悪です。すべてのテキスト出力をコピーして貼り付けてください。 –
最初の試行でアラートには何が含まれていましたか? JSONはオブジェクトの配列を表しているので、 '' '0 = [Object object]' ''のようなものを見ることが期待されます。これは何が起こったのですか、アラートは表示されませんでしたか? –
'私もドット表記を試みました。 ' - どこにありますか? 'alert(i +" = "+ val);'の出力をポストしてください。 – ravisachaniya