表单提交后数据库不更新

时间:2018-01-19 09:01:47

标签: javascript php ajax mysqli

我有一个表单,用户可以填写该表单来更改数据库中的条目。该条目是一个特定的转变(如周一从0900 - 1000)。

javascript和ajax从表单中获取正确的信息(使用console.log.alert进行检查),但是当页面刷新时,数据库条目尚未更改。

以下是处理数据的PHP:

include_once 'db_connect.php';
include_once 'psl_config.php';
include_once 'functions.php';

$error_msg = "";

if (isset($_POST['uid'], $_POST['old_day'], $_POST['old_start'], $_POST['old_end'], $_POST['day'], $_POST['start_time'], $_POST['end_time'])) {

    $new_start = standard_to_military($new_start);
    $new_end = standard_to_military($new_end);

    $uid = filter_var(INPUT_POST, 'uid', FILTER_VALIDATE_INT);
    $old_day = filter_var(INPUT_POST, 'old_day', FILTER_VALIDATE_INT);
    $old_start = filter_var(INPUT_POST, 'old_start', FILTER_VALIDATE_INT);
    $old_end = filter_var(INPUT_POST, 'old_end', FILTER_VALIDATE_INT);
    $day = filter_var(INPUT_POST, 'day', FILTER_VALIDATE_INT);
    $new_start = filter_var(INPUT_POST, 'start_time', FILTER_VALIDATE_INT);
    $new_end = filter_var(INPUT_POST, 'end_time', FILTER_VALIDATE_INT);

    if(!filter_var(INPUT_POST, 'day', FILTER_VALIDATE_INT) || !filter_var(INPUT_POST, 'start_time', FILTER_VALIDATE_INT) || filter_var(INPUT_POST, 'end_time', FILTER_VALIDATE_INT)) {
        $error_msg .= '<p class="error"> The data entered is in an incorrect format.</p>';
    var_dump($error_msg);
    }
    else {
        $stmt = "UPDATE schedule SET  day = ?, start_time = ?, end_time = ? 
                WHERE tutor_id = ?
                    AND day = ? 
                    AND start_time = ?";

        $stmt->bind_param('iiiiii', $day, $new_start, $new_end, $uid, $old_day, $old_start);
        $stmt->execute();

        if ($stmt->errno) {
            //header('../error.php?err='.$stmt->error);
            $error_msg .= "FAILURE TO UPDATE";
            var_dump($error_msg);
            $stmt->close();
        }
        else {
            $stmt->close();
        }
    }
}

这个想法是表单发送与用户正在更改的班次相对应的隐藏输入值,数据库找到该班次并将条目更新为用户放入表单中的数据。

我不知道为什么数据库没有记录更改,因为我使用ajax,我看不到php脚本的var_dump,看看是否有问题。

0 个答案:

没有答案