JSON / jQuery和PHP的问题

时间:2018-11-28 22:34:46

标签: php jquery ajax

我对一个奇怪的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得到空警报。实际上,我需要获取帖子值。请让我知道这里是什么问题。

1 个答案:

答案 0 :(得分:0)

最后我解决了这个问题。 PHP从来都不是问题。 我发现我的ajxData是一个JAVASCRIPT对象,必须先将其转换为JSON,然后才能在AJAX中发送它-帮助我的是基本的W3 school链接。

我改变了

var ajxDataObj  = {action:"chkUsername", ajxusrname:username};
var ajxData     = JSON.stringify(ajxDataObj);