在数据库更改时自动更新表

时间:2019-05-13 05:45:27

标签: php jquery mysql ajax mysqli

我已经尝试了一段时间,想出一种方法来使用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();
}

谢谢

0 个答案:

没有答案