下面是一些最终构建数组的查询。
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,也不明白为什么我无法检索数组数据。任何帮助将不胜感激。感谢。
答案 0 :(得分:2)
以下代码检查re
是字符串还是对象。如果jQuery.ajax()
方法与“json”dataType
一起使用,则后者是可能的。此外,如果响应MIME类型为application/json
(Content-Type
HTTP标头),jQuery能够自动解析JSON。因此,检查jQuery是否已解析re
是个好主意。
var d = typeof re === 'string' ? JSON.parse(re) : re;
var i;
for (i = 0; i < d.length; i++) {
console.log("id = ", d[i].id,
"gdate = ", d[i].gdate);
}
我建议从PHP返回相应的内容类型:
header ('Content-Type: application/json');
echo json_encode($ret);
exit();
答案 1 :(得分:1)
{{1}}
答案 2 :(得分:1)
试试这段代码:)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
avconv -i input1.mp3 -i input2.mp3 -aq 1 -filter_complex amix=inputs=2:duration=first:dropout_transition=2 output.mp3