我有这个jQuery代码,它应该检查数据库中是否存在特定数据。如果数据存在于数据库中,它将返回true,如果数据库中不存在,则返回false。这是代码:
var cont = true; //declaration and initialization of variable
$.post('<?php echo ROOT_URL; ?>lecturers/checkRow', {id: code,tbl: "courses",col: "course_code"}, function (data) {
if (data.exists) {
alert("exist"); // Alert A
cont = true; // assignment A
} else {
alert("not exist"); // Alert B
cont = false; // assignment B
}
}, 'JSON');
alert(cont); // Alert C
我已经测试了checkRow()方法,它运行正常。但是,问题来自我上面显示的代码。
我们说我插入了数据库中不存在的新数据,输出将如下:
1)将首先执行警报C,显示&#34; true&#34;。从逻辑上讲,它应该显示为false,因为数据不存在。
2)然后,将执行警报B,显示&#34;不存在&#34;。这很奇怪,因为即使显示的消息(不存在)是正确的,cont = false
(赋值B)似乎也会被忽略。
根据输出,我关注的一些事情是:
var cont = true
声明的影响。如果我为其指定false,则Alert C将显示false。var cont = true
语句的影响,因此未执行A和B分配。