Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

[PHP] Mettre à jour une frame en fonction d'une autre


Messages recommandés

Posté(e)

Bonjour,

 

J'ai deux frames sur ma page :

- haut

- bas

 

Sur ma frame "haut" j'ai un menu déroulant (balises select et option et avec l'attribut multiple activé pour sélectionner plusieurs options) qui récupère des valeurs dans une base de données.

 

Sur ma frame "bas", j'ai la même chose mais je voudrais que son contenu soit modifié en fonction des valeurs sélectionner dans la frame "haut". Donc en gros la requête à exécuter ne sera pas la même selon les valeurs sélectionner à la frame "haut".

 

Voilà, le problème que je vous ai présenté ci-dessus est largement simplifié par rapport à ce que je veux faire réellement. Tout de même, si vous pouvez essayer de m'aider sur cette partie, cela m'arrangerait beaucoup. J'ai fait beaucoup de recherches sans trouver de résultats intéressants.

 

Merci beaucoup pour votre aide !

Posté(e)

Salut

Sur ma frame "haut" j'ai un menu déroulant (balises select et option et avec l'attribut multiple activé pour sélectionner plusieurs options) qui récupère des valeurs dans une base de données.

Donc ce n'est pas une liste déroulante mais une liste de choix...Ce qui complique un peu la chose, tu as un bouton submit pour valider tes choix?

Ensuite au rechargement de la page, Je ne sais pas comment il faut accéder à toutes les valeurs... vu que c'est du choix multiple, la variable du select doit contenir toutes les valeurs dans un tableau... (A vérifier)

par exemple si ton select est du type:

<SELECT name="liste"></SELECT>

Tu dois (peut etre) acceder à tes valeurs en faisant $POST["liste"][0], $POST["liste"][1] ...

 

J'espère t'avoir aider...

 

 

 

 

 

 

 

Je te fais de la concurrence ici

Posté(e) (modifié)

Salut

 

Donc ce n'est pas une liste déroulante mais une liste de choix...Ce qui complique un peu la chose, tu as un bouton submit pour valider tes choix?

Ensuite au rechargement de la page, Je ne sais pas comment il faut accéder à toutes les valeurs... vu que c'est du choix multiple, la variable du select doit contenir toutes les valeurs dans un tableau... (A vérifier)

par exemple si ton select est du type:

<SELECT name="liste"></SELECT>

Tu dois (peut etre) acceder à tes valeurs en faisant $POST["liste"][0], $POST["liste"][1] ...

 

J'espère t'avoir aider...

Je te fais de la concurrence ici

 

 

Non je n'ai pas de bouton submit donc il faudrait surement que j'utilise du javascript avec un onload mais je ne vois pas du totu comment l'utiliser. Ensuite pour récupérer les éléments sélectionnés, je pense savoir comment faire. Le pb que je me pose est surtout de savoir comment recharger ma frame "bas" automatiquement dès qu'une nouvelle valeur de ma liste déroulante st sélectionnée sur ma frame "haut".

 

Quelqu'un aurait une piste svp ?

 

Merci en tout cas pour ta tentative d'aide! faut dire que j'ai un peu de mal à expliquer clairement mon pb ....

 

edit : très bien ton site !

 

edit 2 :

Voilà un peu plus d'explications à propos de mon problème :

 

page haut.php (pas de bouton submit) :

<form action=bas.php method=POST>
<select multiple>
<option> ... </option>
<option> ... </option>
...
</select>
</form>

 

Les différentes lignes options sont générées à partir des données d'une bdd.

 

Ensuite sur la page bas.php :

 


<?
J'écris ma requête en fonction des éléments sélectionnés sur bas.php (je les récupère à l'aide de $_POST[...])

<select multiple>
<option> ... </option>
<option> ... </option>
...
</select>
</form>
?>

 

Bien sur les différentes lignes <option> sont générées à partir d'une requete SQL qui est même dépend des valeurs sélectionnées sur "haut.php"

 

J'espère que vous avez à peu près saisi mon pb.

 

Merci

Modifié par peKKa
Posté(e) (modifié)

Le tiens aussi...

 

Le probleme pour le javascript, c'est que tu aurait pu faire un onclick, mais vu qu'il peut y avoir plusieurs choix, ca ne marchera pas, il faut vraiment que l'utilisateur déclenche la validation manuellement pour que ca fonctionne, d'où le bouton submit :P la le clic fait recharger la page, et c'est en php que tu charge les données dans le menu déroulmant de ta frame bas

Ou alors le faire dynamiquement tout en javascript, mais c'est vrai que ça devient un peu compliqué, quoique tu peux le faire mais je ne me rappelle plus du tout comment...

Je commence à comprendre un peu mieux ce que tu veux. En effet en utilisant javascript, + des boutons pour faire passer d'une liste à l'autre, je ne sasi plus comment il faut faire...

 

Peut être ce site t'aidera, pour rajouter ou enlever des options à un champ select.

estce que <option onclick="document.frame.forumulaire.Nomduselectbas=new Option('this.value','this.value')"> ça marche, ou un truc du genre ...

Modifié par Paysan Barbare
Posté(e)

(lol nan mon site est rop moche il faut que je le refasse)

 

Sinon j'ai pensé utilisé un onChange dans ma balise <select> dans la frame de haut.

Comment ça dès qu'une valeur du select est modifié la frame du bas est miese à jour.

Mais je ne vois pas trop quoi mettre comme argument à onChange.

Je ne connais presque pas dut out le JavaScript...

 

Merci pour ton aide !

Posté(e)

Mais non c'est pas moche...

 

Ce site t'aidera un peu peut-être: http://aliasdmc.free.fr/coursjavas/cours_javascript96.html

 

Merci pour ton site !

 

Pour ma part j'ai avancé encore un peu :

en écrivant le code ci-dessous j'arrive à charger ma frame du bas dès que la sélection de ma liste à choix multiples est modifiée.

<form method="POST" onChange="parent.bas.location.href='bas.php'">
<select multiple size=10>
<option>...</option>
<option>...</option>
...
</select>
</form>

C'est donc finalement assez simple.

Cependant je souhaite aussi récupérer la valeur des champs sélectionnés dans ma liste à choix multiples. Le pb est que je ne vois pas du tout comment faire en javascript... Est ce que qq'un peut m'aider sur ce point ?

 

Merci encore :P

Posté(e)

Bon comme je vous l'ai di au début du message ce que je veux faire est en fait plus compliqué.

J'ai toujours mes deux frames "haut" et "bas". Mais ces deux frames sont à gauche pour laisser la place à une troisième frames qui sera donc située à droite et que nous allons appelé tout simplement "droite".

Il y a donc trois frames :

- haut

- bas

- droite

 

Lorsque je sélectionne un élément dans la boîte à choix multiples de la frame "haut", la frame "bas" est mise à jour. Ceci marche très bien. Mais je voudrais aussi mettre à jour la frame "droite" en transmettant les données sélectionnées dans la frame "haut".

Je ne vois pas bien comment faire...

 

Si vous avez pas tout compris ce que je veux faire en gros mon problème se résume à cela :

Comment définir deux pages dans l'attribut ACTION de mon formulaire ??

Peux t-on écrire quelque chose qui ressemble à ça :

<form action="bas.php;droite.php">
...
</form>

Ou bien existe-t-il une syntaxe qui permet de faire ceci ?

 

Merci beaucoup pour votre aide !!

Posté(e)

Puisque tu as déjà mis en place cette astuce pour rafraichir la frame bas, pourquoi ne pas faire la même chose avec la frame de droite ?

<form method="POST" onChange="parent.bas.location.href='bas.php'; parent.droite.location.href='droite.php';">

;-)

Posté(e)

Puisque tu as déjà mis en place cette astuce pour rafraichir la frame bas, pourquoi ne pas faire la même chose avec la frame de droite ?

 

:P

 

Parce que je voulais récupèrer les valeurs sélectionnées dans une select box.

j'avais besoin de ses valeurs pour traiter mes deux frames.

Mais c'est bon j'ai fait une ptite fonction qui permet de récupérer les valeurs sélectionnées dans la select box et de les envoyer en paramètres à chacune de mes deux pages.

 

Merci

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...