gpt4 book ai didi

php - 简单的 Ajax Jquery 脚本 - 如何获取表中每一行的信息?

转载 作者:可可西里 更新时间:2023-11-01 06:34:52 25 4
gpt4 key购买 nike

我正在关注这里发布的一个简单的 ajax>php>mysql 示例 http://openenergymonitor.org/emon/node/107

我只能显示第一行的信息。我的 table 是这样布置的

--------------
| id | name|
--------------
| 1 | Pat |
| 2 | Joe |
| 3 | Rob |
--------------

php代码

 $result = mysql_query("SELECT * FROM $tableName");          //query
$array = mysql_fetch_row($result); //fetch result
echo json_encode($array);

脚本

$(function () 
{
$.ajax({
url: 'api.php', data: "", dataType: 'json', success: function(data)
{
var id = data[0]; //get id
var vname = data[1]; //get name
$('#output').html("<b>id: </b>"+id+"<b> name: </b>"+vname);
}
});
});

第 1 行

如果我输入 var id = data[0];,我会得到值 1。如果我输入 var name = data[1]; 我会得到 Pat。

ROWS 2 n 3 未定义

示例 var id=data[2]; 返回未定义等等

我的问题

  1. 为什么我只获取第一行的值?

  2. 如何获取第一行以外的行的信息?

从 Stackoverflow 上的其他问题来看,我可能不得不使用 while 循环,但我不太确定为什么或如何。

最佳答案

旧的 MySQL 扩展 mysql 已经过时,最好使用 mysqliPDO!

mysql_fetch_row()仅返回 1 行!你必须把它放到一个循环中,例如:

$data = array();
while ( $row = mysql_fetch_row($result) )
{
$data[] = $row;
}
echo json_encode( $data );

您还必须更改 JavaScript:

$.ajax({                                      
url: 'api.php', data: "", dataType: 'json', success: function(rows)
{
for (var i in rows)
{
var row = rows[i];

var id = row[0];
var vname = row[1];
$('#output').append("<b>id: </b>"+id+"<b> name: </b>"+vname)
.append("<hr />");
}
}
});

顺便说一句,我建议您使用 mysql_fetch_assoc()因为它使您的代码更加灵活和简洁。

关于php - 简单的 Ajax Jquery 脚本 - 如何获取表中每一行的信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8019489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com