我试图通过 json 对象将数据库数组提取到表中,但它给我数据库第一行作为表元素,其他作为最后一个数据库行。中间行不显示在输出中。这是我的代码
<script id="source" language="javascript" type="text/javascript">
$(function ()
{
$.ajax({
url: 'example.php',
data: "",
//for example "id=5&parent=6"
dataType: 'json', //data format
success: function(data) //on recieve of reply
{
for(var i = 0; i < data.length; i++){
var uid = data[i];
var firstname = data[i];
var lastname = data[i];
var email = data[i];
var username = data[i];
var password = data[i];
}
$('#output').html("<b>uid: </b>"+uid+"<b> firstname: </b>"+firstname+"<b> lastname: </b>"+lastname+"<b> email: </b>"+email+"<b> username: </b>"+username+"<b> password: </b>"+password);
}
});
});
</script>
示例.php
<?php
// server info
$server = 'localhost';
$user = 'root';
$pass = '';
$db = 'ocean';
$connection = mysql_connect($server, $user, $pass) or die(mysql_error());
$database = mysql_select_db($db) or die(mysql_error());
$result = mysql_query("select * from oops"); //query
$array = array();
while ($row = mysql_fetch_row($result)) {
$array[] = $row;
}
echo json_encode($array);
?>
最佳答案
第一:
$('#output').html("<some code>");
每次都会覆盖#output
的内容。因此,您只能看到最后的结果。我认为你应该使用 append()
:
$('#output').append("<some code>");
或者将所有行收集到一个变量中并使用 html()
一次:
var html = "";
for(var i = 0; i < data.length; i++){
var uid = data[i];
var firstname = data[i];
var lastname = data[i];
var email = data[i];
var username = data[i];
var password = data[i];
html += "<b>uid: </b>"+uid+"<b> firstname: </b>"+firstname+"<b> lastname: </b>"+lastname+"<b> email: </b>"+email+"<b> username: </b>"+username+"<b> password: </b>"+password;
}
$("#output").html( html );
第二:
var uid = data[i];
var firstname = data[i];
var lastname = data[i];
所有这些变量都指向一个值data[i]
。
也许是:
var uid = data[i].uid;
var firstname = data[i].firstname;
var lastname = data[i].lastname;
?
更新:
如果您想将数据显示为表格行,您可以执行以下操作:
html += "<tr>\
<td><b>uid: </b>"+uid+"<b></td>\
<td><b>firstname: </b>"+firstname+"</td>\
<td><b> lastname: </b>"+lastname+"</td>\
<td><b> email: </b>"+email+"</td>\
<td><b> username: </b>"+username+"</td>\
<td><b> password: </b>"+password+"</td>\
</tr>";
之后:
$("#output").html( "<table>" + html + "</table>" );
关于javascript - 我想将数据库元素数组提取到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38389098/