我的Ajax
$("form").on("submit", function () {
var data = {
"action": "test"
};
data = $(this).serialize() + "&" + $.param(data);
$.ajax({
type: "POST",
dataType: "json",
url: "ajax2.php", //Relative or absolute path to response.php file
data: data,
success: function (data) {
$("#main_content").slideUp("normal",function(){
$(".the-return").html("<br />JSON: " + data);
//how to alter this part to display data for each record in one div?
});
}
});
return false;
});
我的查询
$statement = $pdo->prepare("SELECT * FROM posts WHERE subid IN (:key2) AND Poscode=:postcode2");
$statement->execute(array(':key2' => $key2,':postcode2'=>$postcode));
// $row = $statement->fetchAll(PDO::FETCH_ASSOC);
$json = array();
while( $row = $statement->fetch()) {
array_push($json, array($row['Name'], $row['PostUUID']));
}
header('Content-Type: application/json');
echo json_encode($json);
目前以此格式显示的结果:
JSON: jack,55421894ab602,test,55439324cc43d
但我希望显示如下:
Name:jack,
Id:55421894ab602
.....and some other info-
Name:test
Id:55439324cc43d
.....and some other info-
这部分:
$(".the-return").html("<br />JSON: " + data);
我试过了:data[0];
但是当我这样做时,只显示第一条记录。
我尝试的是:
data[0]
本身就是一个数组。如何显示该数组以及在nice html中获取的其他记录?
编辑:通过这些编辑过的代码,我只能检索最后的结果,它不会循环遍历数组。
AJAX 成功:功能(数据){
$("#main_content").slideUp("normal",function(){
//$(".the-return").html("<br />JSON: " + j_data);
for (i = 0; i < data.length; i++) {
$(".the-return").html("<div>Name:" + data[i].name + "<br/>Id:" + data[i].id);
}
console.log(data); // this shows nothing in console,I wonder why?
//alert(j_data);
});
}
PHP
$json = array();
while( $row = $statement->fetch()) {
//array_push($json, array($row['Name'], $row['PostUUID']));
array_push($json, array("name" => $row['Name'], "id" => $row['PostUUID']));
}
header('Content-Type: application/json');
echo json_encode($json);
答案 0 :(得分:2)
首先,要获取模板中字段的名称,您需要将它们存储在数组中:
array_push($json, array("name" => $row['Name'], "id" => $row['PostUUID']));
json_encode之后的结果 - &gt; {&#34;名称&#34;:&#34; TheName&#34;&#34; ID&#34;:&#34; TheID&#34;}
接下来,在你的js代码中,如果它收到的json有效,你可以循环:
success: function (data) {
$("#main_content").slideUp("normal",function(){
for (i = 0; i < data.length; i++) {
$(".the-return").html("<div>Name:" + data[i].name + "<br/>Id:" + data[i].id);
}
}
}
当然,您可以在div中添加样式或类。
我希望它有所帮助。