Page 1 sur 1

comment ça marche this.form.submit() ?

Posté : 07 mars 2006, 12:24
par Iro
Salut,

J'ai le problème suivant: je dois soumettre un formulaire à chaque fois que un élément dans une liste déroulante est sélectionné. Cela pour pouvoir changer un'image affichée. De cette façon la page est rechargée et je peux changer l'image par rapport au choix fait.

1ère solution:
J'ai trouvé cette fonction: onchange="this.form.submit ()" que j'ai inclus dans mon code:

<form name="form1" method="post" action="achat.php">
.......
<select name="couleur" onchange="this.form.submit()">

Le problème est que quand je sélectionne un des éléments de mon menu déroulant rien se passe.
Comment ça marche this.form.submit() ? Il faut rajouter quelque chose ?

2ème solution:
J'ai trouvée cette autre solution:
....
<script language ="JavaScript">
<!--
function change() {
var destination = "achat.php";
location = destination;
}
....
<select name="couleur" onchange="change()">

Mais dans ce cas la page est rechargée mais le formulaire pas soumis.

Merci
Iro

Posté : 07 mars 2006, 12:30
par charabia
C'est du javascript ;) tu t'es trompé de forum.

Essaies avec :

Code : Tout sélectionner

<select name="couleur" onChange="javascript:this.form.submit();">

Posté : 07 mars 2006, 12:52
par Iro
Désolé....

Pas de solutions équivalentes quand même en php ?
(onChange="javascript:this.form.submit();" ne marche pas)

Iro

Posté : 07 mars 2006, 13:07
par charabia
Bizarre...Testes ce code, il fonctionne très bien chez moi. Est-ceque tu vois les variables affichées ?

Page form.php

Code : Tout sélectionner

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>test</title> </head> <body> <?php if( isset($_POST['couleur']) ) echo $_POST['couleur']; ?> <form name="form1" method="post" action="form.php"> <select name="couleur" onchange="javascript:this.form.submit();"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> </form> </body> </html>

Posté : 07 mars 2006, 13:16
par zeus
Il y un truc qu'il te faut comprendre, c'est que le PHP est un langage serveur, c'est à dire qu'il est éxécute AVANT que l'utilisateur voit la page.

Le javascript est un langage client, c'est à dire qu'il est exécuté quand la page est chez le client

Pour soumettre le formulaire quand l'utilisateur change la liste, c'est qu'il faut que la page soit affichée. Il est donc impossible d'utiliser PHP pour soumettre le formulaire

Posté : 07 mars 2006, 13:22
par Ryle
Essayes comme ceci :)

Code : Tout sélectionner

<form name="form1" method="post" action="achat.php"> <select name="couleur" onChange="document.form1.submit()"> </select> </form>

Posté : 07 mars 2006, 13:26
par charabia
Si mon code ne fonctionne pas c'est que tu dois avoir un conflit avec d'autres formulaires au niveau de la même pas ou que tes </form> ne sont pas placés où il faut.