Page 1 sur 1

Changer l'url d'une frame via une autre frame avec un form

Posté : 14 sept. 2007, 21:39
par solodown
bonjour

voila, pendant le développement de mon site un problème est survenu.

la possibilité de changer l'url d'une frame via une autre frame avec un form !

J'ai essayè divers petit bout de code trouvé sur le net, sans succès.

Voici l'hiérarchie des pages

-----------------page1.php-----------------
iframe vers la barre, id bar, src="bar.php"
iframe vers Google, id nav
----------------------------------------------

-----------------bar.php-----------------
Affiche un Form
un input type="text" name="addresse"
Un input type="button"
----------------------------------------------

Le but est que lorsque l'on ecrit un adresse et appui sur le bouton qui ce trouve dans bar.php
sa change le scr de l'iframe nav ce trouvant dans page1.php

j'éspere m'avoir bien fait comprendre :oops:

merci

Posté : 15 sept. 2007, 01:06
par Ryle
Ajoute un target dans ton formulaire et donne un nom à ton iframe si ce n'est pas déjà fait :

Code : Tout sélectionner

<form ... target="nom_de_la_frame_cible"> .... </form>
Lorsque tu soumettras le formulaire, l'envoi des données se fera dans la frame spécifiée.

Sinon tu peux le faire en javascript en suivant le dom à coup de parent pour remonter et du nom des frames pour redescendre..

Posté : 15 sept. 2007, 14:00
par solodown
j'ai essayé sa ne marche pas

Regardez http://www.mabarre.com/labarre (identifiant : test)

Quand j'appui sur le bouton d'envoi, la frame nav affiche page1.php

Posté : 18 sept. 2007, 23:33
par solodown
merci ne sais :?:

Posté : 19 sept. 2007, 10:49
par Ryle
Je comprend pas bien le problème ou ce que tu veux obtenir...

Quand je met une url dans le champ texte et que j'envoi le formulaire, les données sont envoyés à la page "bar.php" dans la frame "nav" et il me marque "pirate" ... si tu veux afficher l'url spécifiée en paramètre il te suffit soit de spécifier une autre page dans l'action du formulaire soit de rediriger l'utilisateur en fonction des paramètres récupérés en php : $_GET['nav']

Posté : 19 sept. 2007, 21:32
par solodown
Je comprend pas bien le problème ou ce que tu veux obtenir...

Quand je met une url dans le champ texte et que j'envoi le formulaire, les données sont envoyés à la page "bar.php" dans la frame "nav" et il me marque "pirate" ... si tu veux afficher l'url spécifiée en paramètre il te suffit soit de spécifier une autre page dans l'action du formulaire soit de rediriger l'utilisateur en fonction des paramètres récupérés en php : $_GET['nav']
Désolé j'ai oublié d'enlevé le script de protection
Peux-tu réessayé :oops:

En fait, a la base(j'adore ces 3 mots :lol:), quand tu tape l'url dans le champ et que tu valide(frame 1)

le site mentionné doit s'affiché dans la GRAAANDEE frame du dessous(frame 2)

Posté : 20 sept. 2007, 12:30
par Ryle
ok, capiche...

Lorsque tu soumets le formulaire, si aucune action n'est précisée, c'est la page en cours qui est rappellé. Le target te permet d'afficher la page appellée dans la frame (ce qu'il fait donc correctement :))

A partir de là tu peux spécifier une action dans ton formulaire pour appeller une page "redirection.php" qui récupérera le paramètre contenant la valeur de l'url saisie et fera la redirection via un header("Location:....").

Une autre solution (en javascript cette fois), consiste à modifier l'attribut action du formulaire lorsque celui-ci est soumit (onSubmit=""), pour le remplacer par l'url saisie. Ainsi la page appellée sera l'url saisie qui sera ouverte dans la frame :

Code : Tout sélectionner

document.nom_du_formulaire.action = document.nom_du_formulaire.champ_du_formulaire.value;