2009-09-02 8 views
2

Avant de jeter quelque chose de moche, j'ai pensé que ce serait une bonne chose à demander aux experts.Ajax (jquery) vs PHP rediriger des idées?

J'ai un bouton qu'un utilisateur peut cliquer que:

a) Laissez-passer une variable de l'élément à une fonction jquery et messages à un script php comme si (cela fonctionne bien, mais il est probablement un moyen plus facile):

$(".complete_btn").live("click", function(){ 
    var fooString= this.id;         
    var fooSplit= fooString.split("-"); 
    var fooId= fooSplit[1]; 
     $.ajax({ 
      type: "POST", 
      url: "http://localhost/foo/php/complete_foo.php", 
      data: "fooId="+fooId, 
      success: function() { 
       } 
      }); 
}) 

b) le script PHP prend la variable, STIP/versions/évasions/whatever, les autorisations de chèques, et met à l'arrêt d'une session et crée un nouveau (fonctionne aussi très bien):

if(isset($_SESSION['foo_id'])) 
        unset($_SESSION['foo_id']); 
        session_start(); 
        $_SESSION['foo_id'] = $foo_id_posted; 
        header ("Location: http://localhost/foo/reviewfoo.php"); 

Le problème que je rencontre est que je ne peux pas simplement utiliser un en-tête pour transmettre à ma page depuis que je poste ceci via ajax. Au lieu de cela, la fonction tire un get du http://localhost/foo/reviewfoo.php, ce qui ne sert à rien. Quelqu'un peut-il donner des conseils sur ce qui pourrait être la meilleure façon de le faire? J'ai quelques idées molles, mais j'espère que quelqu'un peut me donner une idée de ce que je peux faire.

Répondre

7

Dans la fonction de la réussite de votre appel ajax, vous pourriez rediriger l'utilisateur:

success: function() { 
      window.location.href = 'http://localhost/foo/reviewfoo.php'; 
     } 

En revanche, si l'utilisateur va être redirigé de toute façon, il suffit de faire une demande de forme non ajaxy.

+0

Ya, c'est à peu près juste. –