2010-11-03 3 views
1

Je veux rediriger après une requête ajax réussie (que je sais faire) mais je veux passer le long des données retournées sera utilisé pour charger un iframe sur la page que je viens de rediriger.Faire une requête ajax pour obtenir des données, puis rediriger vers une nouvelle page, en passant les données retournées

Quelle est la meilleure façon de transmettre ces données et de les utiliser pour ouvrir et remplir un iframe dans la page que je viens de rediriger?


EDIT: Je passe une variable GET, mais je suis d'avoir à utiliser ce qui suit pour y accéder pour une utilisation dans mon attribut iframe src:

function $_GET(q,s) { 
     s = (s) ? s : window.location.search; 
     var re = new RegExp('&'+q+'=([^&]*)','i'); 
     return (s=s.replace(/^\?/,'&').match(re)) ? s=s[1] : s=''; 
    } 

var d = $_GET('thedata'); 

Je suppose qu'il n'y a pas vraiment un moyen plus simple d'accéder aux vars GET?

+0

Quelles sont les données? – lonesomeday

+0

Pourquoi ne faites-vous pas une publication régulière et obtenez-vous directement les valeurs de l'iframe à partir du serveur? – davehauser

+0

@lonesomeday - quelque chose comme: 344565ghd557ddje – Lothar

Répondre

2

Si ce n'est pas trop de données, vous pouvez passer comme paramètre get dans la redirection:

document.location = "/otherpage?somevar=" + urlescape(var) 

Rappelez-vous que urls sont limités à 1024 caractères, et que les caractères spéciaux doivent être échappés.

Si la limite dépasse cette limite, il est préférable d'utiliser des sessions côté serveur. Vous utiliserez une base de données sur le serveur pour stocker les informations nécessaires et transmettre un identifiant unique dans l'URL, ou en tant que cookie sur l'ordinateur des utilisateurs. Lorsque la nouvelle page est chargée, elle peut extraire les informations de la base de données en utilisant l'identifiant. Les sessions sont prises en charge dans pratiquement tous les environnements Web prêts à l'emploi. Une autre alternative peut être de placer les données sous la forme d'un attribut caché sous une forme qui utilise la méthode post (pour contourner la limite de 1024 char), et de simuler une soumission du formulaire en javascript pour accomplir la redirection, y compris la Les données.

+0

Donc je passe la variable comme ceci mais j'ai aussi besoin d'utiliser la fonction suivante (en fait, la fonction est dans ma question éditée) pour accéder à la variable GET à utiliser dans mon attribut iframe src: – Lothar

+0

Si vous avez accès au serveur, vous pouvez y récupérer la variable GET et rendre la page en l'utilisant, ou simplement afficher une balise de script avec la variable initialisée à la valeur. La plupart des frameworks côté serveur fournissent un moyen facile d'obtenir des variables GET; plus facile que de le faire sur javascript. Cela étant dit, votre fonction fonctionnerait. –

Questions connexes