jQuery在使用post()方法时分配变量问题

时间:2018-04-05 04:20:41

标签: javascript jquery ajax

我有这个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)似乎也会被忽略。

根据输出,我关注的一些事情是:

  • 警报C似乎受var cont = true声明的影响。如果我为其指定false,则Alert C将显示false。
  • 输出显示的顺序不正确。我想知道为什么警报C首先显示然后是警报B。
  • 由于cont的最终值受var cont = true语句的影响,因此未执行A和B分配。

0 个答案:

没有答案