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

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 !

Comment recharger la frame "bas" dans le formualire se présentant dans la frame "haut"

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

tu sais que les tags suivants supportent target :

a, area, form, base, link

http://www.w3.org/TR/xhtml-modularization/…#s_targetmodule

Essaye donc target="bas" …

Oui je sais.
Le probème est que je ne veux pas utiliser de bouton submit… En fait j’aimerai que dès que l’utilisateur modifie le champ sélectionné sur la frame “haut” la frame “bas” soit directement mise à jour. Je pense faire cela à l’aide d’un onChange() mais je ne connais pas assez le javascript pour savoir quoi mettre en argument.
Mais sinon ton idée est sympa et j’avoue que je n’y avais pas pensé. Je pense que je l’adopterai en solution de secours.
Si vous avez la moindre question n’hésitez surtout pas à la poser.
Merci beaucoup !

onchange=“this.form.submit();” tout simplement. Cela revient au même que de presser sur le bouton. Je te conseille cependant de laisser un bouton, afin que cela marche quelque soit l’état de javascript (activé, etc)

Merci bcp c’est exactement ce que je cherchais !!
J’essaye ça et je reviens pke j’aurai encore d’autres questions à poser :slight_smile:
Merci !!

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 !!

Tu ne peux pas. 'fin pas en html. Avec javascript oui, ça doit tourner autour de form.action ou un truc du genre (je sais que tu peux changer dynamiquement l’action d’un formulaire, donc pourquoi pas).