【发布时间】:2017-07-29 19:53:40
【问题描述】:
我正在尝试制作一个可以获取数据库表值所有行记录的表。我已经做到了,我可以做到,但是数据记录只显示记录数据库表中的一个数据,并且当我单击用于将记录显示到表中的按钮时,它总是将记录值循环到右侧。有人知道我的代码有什么问题吗?
这是php、jquery和html脚本,以及页面截图:
$(document).ready(function() {
$("#ajaxButton").click(function() {
$.ajax({
type: "Post",
url: "employee.php",
success: function(data) {
var list = JSON.parse(data);
var tr = "";
$.each(list, function(i, v) {
tr = +"<tr>";
tr += "<td>" + v['no'] + "</td>";
tr += "<td>" + v['sensor1'] + "</td>";
tr += "<td>" + v['sensor2'] + "</td>";
tr += "<td>" + v['sensor3'] + "</td>";
tr += "<td>" + v['sensor4'] + "</td>";
tr += "<td>" + v['sensor5'] + "</td>";
tr += "<td>" + v['sensor6'] + "</td>";
tr += "<td>" + v['sensor7'] + "</td>";
tr += "<td>" + v['sensor8'] + "</td>";
tr += "<td>" + v['sensor9'] + "</td>";
tr += "<td>" + v['sensor10'] + "</td>";
tr += "<td>" + v['sensor11'] + "</td>";
tr += "<td>" + v['sensor12'] + "</td>";
tr += "<td>" + v['ambien'] + "</td>";
tr += "<td>" + v['average'] + "</td>";
tr += "<td>" + v['deffiasi'] + "</td>";
tr += "<td>" + v['status'] + "</td>";
tr += "</tr>";
});
$("#table_s tbody").append(tr);
}
});
});
});
row += '<td>' + data.rows[i].date + '</td>';
row += '<td>' + data.rows[i].company + '</td>';
row += '<td>' + data.rows[i].location + '</td>';
<html>
<head>
<script language="javascript" type="text/javascript" src="jquery-1.6.2.js"></script>
<script language="javascript" type="text/javascript" src="ajax.js"></script>
</head>
<body>
<form name="table_s" id="table_s" class="table_s">
<table id="table_s" class="table_s"cellspacing='0' class="js-serial" border="2">
<thead>
<tr>
<th><center>No.</center></th>
<th><center>S1</center></th>
<th><center>S2</center></th>
<th><center>S3</center></th>
<th><center>S4</center></th>
<th><center>S5</center></th>
<th><center>S6</center></th>
<th><center>S7</center></th>
<th><center>S8</center></th>
<th><center>S9</center></th>
<th><center>S10</center></th>
<th><center>S11</center></th>
<th><center>S12</center></th>
<th><center>Ambien</center></th>
<th><center>Average</center></th>
<th><center>Deff</center></th>
<th><center>Status</center></th>
</tr>
</thead>
<tbody>
<tr>
</tr>
</tbody>
</table>
<input type="button" value="Click Here" id="ajaxButton"/>
</body>
</html>
<?php
$con=mysqli_connect("localhost","root","","silo");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
// Data for Titik1
$query = mysqli_query($con,"SELECT * FROM termocouple");
$rows = array();
while($tmp= mysqli_fetch_array($query)) {
$rows[] = $tmp;
}
echo json_encode($rows);
mysqli_close($con);
?>
【问题讨论】:
-
如果您正在编写新代码,请不要使用
mysql_*函数。它们又旧又坏,在 PHP 5.5 中被弃用(它太旧了,甚至不再接收安全更新),并在 PHP 7 中完全删除。使用PDO或mysqli_*和 prepared statements而参数绑定。详情请见stackoverflow.com/q/12859942/354577。 -
@Chris 我已经完成了代码的编辑。我现在用 mysqli
-
tr = +"<tr>";使 tr 变量等于 NaN,因为 + 运算符会将字符串转换为数字,然后将其转换为 NaN(不是数字)然后存储到 tr 变量中,所以你结果中缺少开始标记。也就是说, tr = +"<tr>"不等于tr += "<tr>"那么我必须使用哪一个? tr = + "" 还是 tr +=" "? 对不起.. 我是 json 新手。可以举个例子吗?
标签: php jquery mysql html-table