A l'aide/Formulaire manquant

Eléphanteau du PHP | 15 Messages

21 juil. 2006, 11:08

Bonjour,

J'ai un formulaire qui consiste de pleins de champs de texte et des listes deroulantes.

Mon probleme est le suivant :

- J'ai un champ texte suivi par 7 listes deroulantes liées entre elles, puis 3 champs de texte ... Quand j'ecris quelque chose dans le 1er champ texte et je vais un choix parmi la liste deroulante suivante, ce qui est ecrit dans le champ texte n'est plus là.
Voilà une partie de mon code:

Code : Tout sélectionner

<form name="form1" method="post" action="passer_commande.php?id_soc=<? echo $id_soc?>&pays=<? echo $pays?>&soc_org=<? echo $soc_org?>&ser_lab=<? echo $ser_lab?>&ville=<? echo $ville?>&cp=<? echo $cp?>&tel=<? echo $tel?>&fax=<? echo $fax?>&id=<? echo $id?>"> <table width="60%" border=1 align="center" cellpadding=7 cellspacing=0 bordercolor="#AODOFF" bgcolor="white"> <tr> <th><div align="left">Num&eacute;ro Commande </div></th> <th><input type="text" name="numero" style="width:250px"></th> </tr> <tr> <th><div align="left">Source<? echo ' test '.@$_GET["numero"]." ".@$_POST["numero"]?></div></th> <th><select name="source" onChange="location.href='commander.php?id=<? echo $id?>&id_soc=<? echo $id_soc?>&ville=<? echo $ville?>&soc_org=<? echo $soc_org?>&ser_lab=<? echo $ser_lab?>&cp=<? echo $cp?>&tel=<? echo $tel?>&fax=<? echo $fax?>&pays=<? echo $pays?>&source='+this.options[selectedIndex].value" style="width:250px"> <option value="0" selected="selected">Choisir..</option> <option value="Bon Commande"<? if(isset($_GET["source"])) { if($_GET["source"]=='Bon Commande') { ?> selected="selected"<? } } ?>>Bon de Commande</option> <option value="Action Tel"<? if(isset($_GET["source"])) { if($_GET["source"]=='Action Tel') { ?> selected="selected"<? } } ?>>Action Telephonique</option> </select> </th> </tr>......
Alors que moi je dois toujours avoir la valeur du champ dans son emplacement.
Je ne sais pas quoi faire ni comment!! :cry:
Merci pour votre aide.

Mammouth du PHP | 19672 Messages

21 juil. 2006, 20:20

Le problème est que sur le onchange, tu ne fais pas un submit() mais un location() : en clair, tu ouvres une autre page : les données inscrites ou sélectionnées ne sont donc pas transmises. Il te faut donc réfléchir à la manière d'utiliser onchange avec un submit() pour pouvoir récupérer ce qui est en place sans nécessairement traiter le formulaire s'il est incomplet..
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: