javascript - ajax fetched boolean在if语句中不起作用

时间:2014-01-17 03:07:44

标签: javascript php jquery ajax json

我有一个函数可以验证插入的商品编号是否在网站的任何位置都没有使用。该函数将数字发布到php,它检查nubmer并相应地返回true或false。

这一切都是使用JSON完成的。 php返回的数据是一个json对象,我从中取出响应,然后在javascript函数中返回它。我有console.log(data['response'])来查看回复,这是正确的。

现在问题。我有一个if语句,我检查响应是否为false,如果是,则输出警报。现在的问题是if语句永远不会被触发,因为没有显示任何警告信息。

javascript中的函数

function validateArticleNr(anr){
    var response = true;
    $.ajax({
        type: 'POST',
        url: '../lib/action.php?action=vanr/validate',
        data: {
            postAnr: anr
        },
        dataType: 'json',
        success: function(data){
            console.log(data['response']);
            response = data['response'];
            return response ;
        },
        error: function(xhr, status, error){
            console.log(xhr.responseText);
        }
    });
}

我的php脚本在action.php

case 'vanr/validate':
        $response = true;
        $anr = $_POST['postAnr'];
        $que = $mysqli->query("SELECT article_nr FROM stock WHERE article_nr='" . $anr . "'");
        $que2 = $mysqli->query("SELECT code FROM sets WHERE code='" . $anr . "'");
        $que3 = $mysqli->query("SELECT article_nr FROM stockpurchases WHERE article_nr='" . $anr . "'");

        while($res = $que->fetch_assoc()){
            if($res['article_nr'] == $anr){
                $response = false;
            }
        }
        while($res2 = $que2->fetch_assoc()){
            if($res2['code'] == $anr){
                $response = false;
            }
        }
        while($res3 = $que3->fetch_assoc()){
            if($res3['article_nr'] == $anr){
                $response = false;
            }
        }

        $return = array('response' => $response);
        echo json_encode($return);
    break;

检查它的if语句

if(validateArticleNr(formArticleNr) == false){
        alert('Artikli number on kasutusel');
    }

0 个答案:

没有答案