【问题标题】:How to display all record row from database table into a table如何将数据库表中的所有记录行显示到表中
【发布时间】: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 中完全删除。使用 PDOmysqli_*prepared statements参数绑定。详情请见stackoverflow.com/q/12859942/354577
  • @Chris 我已经完成了代码的编辑。我现在用 mysqli
  • tr = +"&lt;tr&gt;"; 使 tr 变量等于 NaN,因为 + 运算符会将字符串转换为数字,然后将其转换为 NaN(不是数字)然后存储到 tr 变量中,所以你结果中缺少开始 标记。也就是说,tr = +"&lt;tr&gt;" 不等于tr += "&lt;tr&gt;"
  • 那么我必须使用哪一个? tr = + "" 还是 tr +=" "?
  • 对不起.. 我是 json 新手。可以举个例子吗?

标签: php jquery mysql html-table


【解决方案1】:

您应该在循环中附加 tr。

success: function(data){
  var list = JSON.parse(data);
  for(var i = 0; i < list.length; i++){
    var tr = "<tr>";
    tr += "<td>"+list[i]['no']+"</td>";
    tr += "<td>"+list[i]['sensor1']+"</td>";
    tr += "<td>"+list[i]['sensor2']+"</td>";
    tr += "<td>"+list[i]['sensor3']+"</td>";
    tr += "<td>"+list[i]['sensor4']+"</td>";
    tr += "<td>"+list[i]['sensor5']+"</td>";
    tr += "<td>"+list[i]['sensor6']+"</td>";
    tr += "</tr>";
    $("#table_s tbody").append(tr);
  }
}

【讨论】:

  • 它仍然只显示一个数据并不断循环,使 tr 结果到正确的位置,就像我上传的图像一样
  • 参考这个小提琴link。它在表格中显示多行。
猜你喜欢
相关资源
最近更新 更多
热门标签