即使没有数据添加到数据库,通知似乎也是成功的

时间:2016-12-02 11:44:29

标签: php ajax

所以我有这些代码,我希望在每个事件中都出现通知。我想检查记录是否存在,然后会出现通知,说大学已经存在。但这不会发生。我继续输入重复的输入,但通知仍然说它是成功的。我的代码中有错误吗?

  

添加-college.php

<?php
function findDuplicate($code) {
    try {
        include($_SERVER['DOCUMENT_ROOT']."/config/db-config.php");

        $sql = "SELECT * FROM colleges WHERE collegecode = ?";
        $stmt = $conn->prepare($sql);
        $stmt->bind_param("s", $code);
        $stmt->execute();
        $stmt->store_result();

        if ($stmt->num_rows > 0) {
            return true;
        }
        else {
            return false;
        }
    }
    catch (Exception $e) {
        return false;
    }
}

try {
    include($_SERVER['DOCUMENT_ROOT']."/config/db-config.php");

    $code = $_POST['code'];
    $name = $_POST['name'];
    $result = array();

    if (findDuplicate($code)) {
        $result['message'] = 'duplicate';
    }
    else {
        $sql = "INSERT INTO colleges(collegecode, collegename) VALUES(?, ?)";
        $stmt = $conn->prepare($sql);
        $stmt->bind_param("ss", $code, $name);
        if ($stmt->execute()) {
            $result['message'] = 'success';
        }
        else {
            $result['message'] = 'error';
        }
    }

    echo json_encode($result);
}
catch (Exception $e) {
    echo json_encode($result);
}
?>
  

的script.js

$("#save-new").click(function() {
        var form = $("#add-college");
        var code = $("#code").val();
        var name = $("#name").val();

        $.ajax({
            type: "POST",
            data: {
                code: code,
                name: name
            },
            url: "../ajax/add-college.php",
            dataType: "html",
            success: function(data) {
                if (data.message = "success") {
                    $.notify({
                        // options
                        message: 'College has been added.'
                    },{
                        // settings
                        type: 'success'
                    });
                }
                else if (data.message = "duplicate") {
                    $.notify({
                        // options
                        message: 'College already exists.'
                    },{
                        // settings
                        type: 'warning'
                    });
                }
                else {
                    $.notify({
                        // options
                        message: 'College cannot be added.'
                    },{
                        // settings
                        type: 'error'
                    });
                }

                $("#code").val("");
                $("#name").val("");

                $("#add-new").modal('hide');

                showColleges();
            }
        });
    });

1 个答案:

答案 0 :(得分:2)

data.message = "success"这是赋值操作,如果你想比较两个字符串使用==运算符。

因此,if条件的正确陈述将是if(data.message == "success")

同样,if(data.message == "duplicate")。我相信你知道这一切!

相关问题