【发布时间】:2015-12-24 12:13:24
【问题描述】:
正如标题所述,我正在尝试编写一个代码来更新特定行的列中的布尔数据(我称为“状态”)。我在表中使用 while 循环来显示新注册的行和状态为 NULL 的行,我在 td 中分别放置了两个按钮(接受、拒绝),因此它们将显示给每个名称,我想要的是当单击接受按钮时,它会将其在表格中的行的状态设置为 1,当单击拒绝时,同样的事情,但设置为 0 而不是 1。
我对此进行了大量研究,但遇到了一个又一个的障碍,所以我真的希望你能在这方面提供帮助,非常感谢!
这是我的代码:
<table id="sHold" style="border:none;">
<?php
$conn = mysqli_connect('localhost', 'root', '', 'srs-db') or die('ERROR: Cannot Connect='.mysql_error($conn));
function getStudent () {
global $conn;
$query = "SELECT * FROM student_table WHERE status IS NULL;";
$result = mysqli_query($conn, $query);
$i = 1;
while ($row = mysqli_fetch_array($result)) {
$sId = $row['student_id'];
$sName = $row['student_name'];
echo "<tr id='sNew".$i."'>";
echo "<td>".$i." - </td>";
echo "<td>$sId</td>";
echo "<td>$sName</td>";
echo "<td><button name='sAcc".$i."'>Accept</button></td>";
echo "<td><button name='sRej".$i."'>Reject</button></td>";
echo "</tr>";
$i++;
}
if (isset($_POST['sAcc'.$i])) {
$row['status'] = 1;
}
}
getStudent();
?>
</table>
【问题讨论】:
-
为什么在循环之外使用 $i?
-
@Gacek 我第一次把它放在里面,但是数字没有增加,所以我把它放在外面,它工作正常
-
当用户点击按钮时,您需要使用 AJAX 向服务器发送请求。该请求应包含该行中的
$sId,以及他们是否单击了Accept或Reject。那么AJAX服务器脚本就可以做UPDATE student_table SET status = ? WHERE student_id = ? -
如果您还不知道 Javascript,则需要学习 Javascript。
-
代码丢失了很多。您需要
form将数据发布到服务器或一些 javascript 以发送 Ajax 请求。阅读更多关于 PHP 的表单处理以了解更多信息。