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("<p class='statusBoxWarning'>Username and password do not match!</p>");
$('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('<form action="http://www.example.com/test/userRegistration/adminDashboard.html" name="userSubscription" method="post" style="display:none;"><input type="text" name="username" value="' + reg_contact_username + '" /><input type="text" name="password" value="' + reg_contact_password + '" /></form>');
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!