2011-09-08 3 views
0

J'utilise ajax avec jQuery pour faire une requête depuis une page de mon site. Maintenant, si la connexion a échoué (ou l'appel a échoué pour une raison différente), je renvoie un message d'erreur et le mettre dans une étiquette. Mais si l'appel réussit, je veux naviguer vers une autre page. Mon problème est que si l'appel réussit, je me retrouve avec le texte de la nouvelle page dans mon label.Redirection vers une nouvelle page basée sur un appel AJAX

Voici mon Javascript:

$.post("chklogin.php", { username: username, password: password }, function(data) { 
     $('#msg').html(data); 
}); 

Et voici le PHP qu'il appelle:

if(mysql_num_rows($result)==0) { 
    $msg="<h3>Enter valid Username and Password.</h3>"; 
    echo $msg; 
} else { 
    $row=mysql_fetch_assoc($result); 
    $_SESSION["userid"]=$row["pgmail"]; 
    header("location:user.php"); 
} 
+0

Si vous ne pouvez pas répondre, ne réduisez pas ma réputation. Sinon, mieux vaut répondre avec raison. –

+0

Les downvotes sont probablement dues à la mauvaise qualité de la question. Il est difficile de comprendre quel est le problème. – David

+0

Je reçois une réponse de mon fichier php. et que j'imprime à l'écran dans l'étiquette avec l'id 'msg' mais si ma condition est vraie dans ce cas je ne veux pas de réponse mais je veux la diriger vers une autre page. c'est 'user.php'. J'espère que tu l'as mieux maintenant. –

Répondre

6

Eh bien cette question aurait pu être plus clair, et je vous encourage à vérifier votre orthographe et le code avant vous postez à nouveau.

Le problème est que vous n'avez pas envoyé la page à rediriger, vous avez envoyé la page appelée à rediriger.

Pour résoudre ce problème:

Tout d'abord, se débarrasser de l'en-tête redirigent sur votre code PHP et le remplacer par:

echo 'SUCCESS'; 

Deuxièmement, changer votre code AJAX à ce qui suit:

$.post("chklogin.php", { username: username, password: password }, function(data) { 
     if(data=='SUCCESS'){ 
     window.location.href = "user.php"; 
     }else{ 
     $('#msg').html(data); 
     } 
}); 

Cela redirigera la page et non la page appelée par AJAX.

Questions connexes