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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : comment ça marche this.form.submit() ?

par charabia » 07 mars 2006, 13:26

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.

par Ryle » 07 mars 2006, 13:22

Essayes comme ceci :)

Code : Tout sélectionner

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

par zeus » 07 mars 2006, 13:16

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

par charabia » 07 mars 2006, 13:07

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>

par Iro » 07 mars 2006, 12:52

Désolé....

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

Iro

par charabia » 07 mars 2006, 12:30

C'est du javascript ;) tu t'es trompé de forum.

Essaies avec :

Code : Tout sélectionner

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

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

par Iro » 07 mars 2006, 12:24

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