In the following code I’m getting ‘TypeError: response is null’ in Firebug. I’ve tried many combinations and ways of trying to get the response but with no success. Please have a look and tell me what I’m doing wrong. Thanks!
$("a.logmein").colorbox({ width:"540", height:"420", href:function(){ return this.href + " #login"; }, onComplete: function(){
$("#formLoginUser").submit(function(){
$.ajax({
data: $(this).serialize(),
type: "POST",
url: $(this).attr('action'),
success: function(response) {
if(response.status == 'fail'){
$("#notifications").removeClass().addClass('ajaxerror').html(response.message).show();
} else {
$("#notifications").removeClass().addClass('ajaxsuccess').html(response.message).show();
}
console.log(response);
},
error: function (xhr, textStatus, errorThrown) {
$("#notifications").addClass('ajaxsuccess').html(xhr.responseText).show();
}
});
return false;
});
}});
ajax.php:
header("Content-Type:application/json");
switch($_REQUEST['action']){
case('formLoginUser'): $afm = $_POST['afm'];
$password = $_POST['password'];
$query_finduser = sprintf("SELECT * FROM clients WHERE clientafm=%s and clientcode=%s and expires>%s",
GetSQLValueString($afm, "text"),
GetSQLValueString($password, "int"),
GetSQLValueString(strtotime('now'), "int"));
$finduser = mysql_query($query_finduser, $connection) or die(mysql_error());
$row_finduser = mysql_fetch_assoc($finduser);
$totalRows_finduser = mysql_num_rows($finduser);
if($totalRows_finduser==0) {
echo json_encode(array("status"=>"fail", "message"=>"Login failed. Please retry"));
} else {
echo json_encode(array("status"=>"success", "message"=>"Login successful!"));
}
break;
default: break;
}//switch end
Due jQuery docs
successcallback function has 3 input parameters:success(data, textStatus, jqXHR). What about the rest of parameters? Try to inspect them. Maybe error is in there.