我对一个奇怪的AJAX问题感到震惊。我的要求是从数据库验证用户名是否已经存在。我正在使用onblur函数进行验证。 下面是我的jQuery
function check_username (){
//Variable Declaration
var username = $('#username').val();
var folderPath = window.location.pathname.replace(/[^\\\/]*$/, '');
var ajxUrl = folderPath+"helpers/ajaxChk.php";
var ajxData = {
action : 'chkUsername',
username : username
};
//Check minimum length
if(username.length < 8){
$('#Err_User_Name').text('Username should be minimum 8 characters');
return false;
}else{
$('#Err_User_Name').text('');
}
console.log(ajxData);
// Check username in database
$.ajax({
type: "POST",
url: ajxUrl,
data: ajxData,
contentType: "json",
success: function (result) {
//do somthing here
alert(result);
}
});
}
在我的php函数下面
if (is_ajax()) {
print_r($_POST);
//Checks if action value exists
if (isset($_POST["action"]) && !empty($_POST["action"])) {
$action = $_POST["action"];
echo $action; die;
//Switch case for value of action
switch($action) {
case "chkUsername": chkUsername(); break;
}
}
}
//Function to check if the request is an AJAX request
function is_ajax() {
return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest';
}
我通过SUCCESS FUNCTION得到空警报。实际上,我需要获取帖子值。请让我知道这里是什么问题。
答案 0 :(得分:0)
最后我解决了这个问题。 PHP从来都不是问题。 我发现我的ajxData是一个JAVASCRIPT对象,必须先将其转换为JSON,然后才能在AJAX中发送它-帮助我的是基本的W3 school链接。
我改变了
var ajxDataObj = {action:"chkUsername", ajxusrname:username};
var ajxData = JSON.stringify(ajxDataObj);