前些日子,本人在做一个失物招领项目的时候发现了一个问题,就是不知道如何从数据库里面动态的获取json数据,百度,谷歌无果,最终一位大四的学长,帮我解决了,下面贴出来那位学长的解决办法
$sql = "SELECT id, name, type0, type, tel, qq, message FROM lf";
$result = mysqli_query($conn, $sql);//连接数据库,并输出指定数据
// 输出每行数据
while ($row = $result -> fetch_assoc()) { //将每一行取出来作为关联数据
$date = date_format(date_create($row['reg_date']), '20y年 - m月 - d日');//注意,时间格式要这样才能输出
$data_list[] = Array (
"id" => $row['id'],
"name" => $row['name'],
"type0"=>$row['type0'],
"type"=>$row['type'],
"tel"=>$row['tel'],
"qq" => $row["qq"],
"message" => $row["message"],
"date"=>$date
);
$json = Array(
"error" => $error,
"list" => $data_list,
"search"=>$search,
);
$json_code = json_encode($json);
echo $json_code;
上面便是将data_list等通过json格式输出
js代码
$.ajax({
type: "get",
url: "port.php",
async: true,
dataType: 'json',
success: function(data) {
var i = data.list.length - 1;
document.getElementById('time_0').innerHTML = data.list[i].date;
document.getElementById('type_0').innerHTML = data.list[i].type;
document.getElementById('qq_0').innerHTML = "QQ:" + data.list[i].qq;
document.getElementById('tel_0').innerHTML = "电话:" + data.list[i].tel;
document.getElementById('type1_0').innerHTML = data.list[i].type0;
document.getElementById('message_0').innerHTML = data.list[i].message;
document.getElementById('time_1').innerHTML = data.list[i - 1].date;
document.getElementById('type_1').innerHTML = data.list[i - 1].type;
document.getElementById('message_1').innerHTML = data.list[i - 1].message;
document.getElementById('qq_1').innerHTML = "QQ:" + data.list[i - 1].qq;
document.getElementById('tel_1').innerHTML = "电话:" + data.list[i - 1].tel;
document.getElementById('type1_1').innerHTML = data.list[i - 1].type0;
document.getElementById('time_2').innerHTML = data.list[i - 2].date;
document.getElementById('type_2').innerHTML = data.list[i - 2].type;
document.getElementById('message_2').innerHTML = data.list[i - 2].message;
document.getElementById('qq_2').innerHTML = "QQ:" + data.list[i - 2].qq;
document.getElementById('tel_2').innerHTML = "电话:" + data.list[i - 2].tel;
document.getElementById('type1_2').innerHTML = data.list[i - 2].type0;
这里也可以用jquery,只是开始用了原生就没改了,用一个ajax就可以直接按要求输出了data_list[i].xx为最新的一行数据。
当然也可以根据自己的需要,用for循环输出
以上,纯属搬运工,欢迎指出错误