获取ajax响应到数组然后检查该数组是否具有特定值

时间:2011-06-30 11:04:19

标签: php jquery ajax arrays response

我有一个简单的php脚本查询数据库以查找用户名和密码匹配,如果找到匹配,则回声'成功'否则回声'失败|这些详细信息不正确,请检查并重试。'< / p>

我正在使用ajax触发此功能并根据响应数据执行操作。问题是,无论我使用什么方法,if语句什么也不做,但如果我给出一个静态值它工作正常!这是我10,000次尝试中的3次:

方法1 - 始终返回-1

function userLogin(){     $ .post(sysFolder +'cmd.php?action = userLogin',$('#login')。serialize(),         function(data){             var arr = data.split('|');

        if($.inArray('fail',arr)){
            alert('no');
            //$('#login .msg').text(msg[1]).slideDown();
        }else if($.inArray('success',arr)){
            alert('yes');
            //window.location.href = homeFolder;
        }
    }
);

}

方法2 - 在警报中识别arr [0],但if语句不触发

function userLogin(){     $ .post(sysFolder +'cmd.php?action = userLogin',$('#login')。serialize(),         function(data){             var arr = data.split('|');

        if(arr[0] == 'fail'){
            alert('no');
            //$('#login .msg').text(msg[1]).slideDown();
        }else if(arr[0] == 'success'){
            alert('yes');
            //window.location.href = homeFolder;
        }
    }
);

}

方法3 - 完美地触发失败动作但显然没有读取php / ajax响应

function userLogin(){     $ .post(sysFolder +'cmd.php?action = userLogin',$('#login')。serialize(),         function(data){             var arr ='fail';

        if(arr[0] == 'fail'){
            alert('no');
            //$('#login .msg').text(msg[1]).slideDown();
        }else if(arr[0] == 'success'){
            alert('yes');
            //window.location.href = homeFolder;
        }
    }
);

}

这是当前网站的链接,目前正在尝试使用上述方法2 http://57bit.com/admin/ 请帮助!

2 个答案:

答案 0 :(得分:0)

jQuery post函数的语法是:

jQuery.post( url, [data,] [success(data, textStatus, jqXHR),] [dataType] )

所以你应该将de success function定义为:

function(data,status,jqXHR) {
    // ...
}

答案 1 :(得分:0)

在if语句中,相同的值被不同地读取!所以我将$.trim()函数添加到查询的值中以清除任何其他不需要的空格等。我的代码现在看起来像这样:

$.post( sysFolder+'cmd.php?action=userLogin', $('#login').serialize(),
    function(data) {
        var arr = data.split('|');
        if($.trim(arr[0]) == 'no'){
            $('#login .msg').text(arr[1]).slideDown();
        }else if($.trim(arr[0]) == 'yes'){
            window.location.href = homeFolder;
        }
    }
);