我已经尝试了一段时间,想出一种方法来使用Ajax
自动更新表,因为数据库中的行已更新。检索数据时,它可以完美工作。问题是,我在表内有一个“表格”。这是一个下拉菜单,我将其设置为onchange="this.form.submit()"
,当我通过Ajax加载表时不起作用。有没有比通过Ajax加载表更好的解决方案,还是有一种方法可以使通过Ajax加载时的表单正常工作,因为它不是“正常”表单。
这是我用于通过Ajax加载表并保持刷新的代码。
function unitsList(){
$('#unitlist').load('includes/unitlist.inc.php', function(){
setTimeout(refreshAvail, 1000);
});
}
这是表格和提交
<form method="post" id="unitform">
<input type="hidden" value="<?php echo($row['id']); ?>" name="id">
<select style="width: 150px;" id="status" name="status" class="form-control form-control-sm" onchange="this.form.submit();">
<optgroup label="NÅVÆRENDE STATUS">
<option disabled selected="true" value="<?php echo($row['status']) ?>"><?php echo $row['status']; ?></option>
</optgroup>
<optgroup label="SETT NY STATUS">
<option style="color:green;font-weight:bold;" value="LEDIG">LEDIG</option>
<option style="color:red;font-weight:bold;" value="OPPTATT">OPPTATT</option>
<option style="color:red;font-weight:bold;" value="99">99</option>
</optgroup>
</select>
</form>
if (isset($_POST)) {
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
mysqli_set_charset($conn,"utf8");
$id = strtoupper($_POST['id']);
$status = strtoupper($_POST['status']);
$sql = "UPDATE users SET status='$status' WHERE id='$id'";
$conn->query($sql);
$conn->close();
}
谢谢