Saturday, 12 November 2016

PHP not redirecting when working with Jquery post


Possible Duplicate:
How to manage a redirect request after a jQuery Ajax call







I have a form that is validated client-side with Jquery. Jquery then passes this data to a php script for server-side validation. At the end of the php script, I try to redirect upon success, but no re-direction happens.



Is Jquery interfering with the redirection? How can I get the php script to redirect. Don't want to redirect with jquery, bc I am going to use sessions and want to keep the session data at redirection.



Here is the code:




JQUERY:



$.ajax({
//this is the php file that processes the data and send mail
url: "includes/process/processAdminLogin.php",
//POST method is used
type: "POST",
//pass the data
data: dataString,
//indicate result is text

dataType: "text",
//Do not cache the page
cache: false,
//success
success: function (data) {
$('input').removeAttr('disabled'); //enable input fields again.

if(data == "fail"){
$("#statusMessage").html("");
$("#statusMessage").html("

Username and password do not match!

");

$('button').removeAttr('disabled');
document.forms[0].reset();
}
}
});


PHP



if($correctPass == 1){

ob_start();
session_start();
$_SESSION['usernameIdentity'] = $userName;
unset($userName, $userPass);
header("Location: ../../adminDashboard.html");
exit;
}else{
echo "fail";
}



The php script gets to the redirection part and just hangs up. I would really want to keep jquery functionality, along with php redirection. Is there a better method?



Thanks!



                              FINAL WORKING SOLUTION:


Ok, after the input from this post and other similar posts, this is what I have as the working solution. It may not be the most efficient or prettiest solution, but it works, and will have to do for now.




JQUERY



$.ajax({
//this is the php file that processes the data and send mail
url: "includes/process/processAdminLogin.php",
//GET method is used
type: "POST",
//pass the data
data: dataString,
//indicate result is text

dataType: "text",
//Do not cache the page
cache: false,
//success
success: function (data) {
$('input').removeAttr('disabled'); //enable input fields again.
if(data == "success"){
$('#statusMessage').html('
');
document.forms['userSubscription'].submit();
}else{alert("couldn t redirect");}


}
});


PHP



if($correctPass == 1){
echo "success";
}else{

echo "fail";
}


The receiving redirection page will have to verify username and password being given again, so validation will be done 2x...which is really inefficient. If anybody can provide me with a better solution - please! A sample write out would also help out.



Thanks!

No comments:

Post a Comment