Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1944 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP&JAVASCRIPT] Probleme pour recuperer les variables d'un formulaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP&JAVASCRIPT] Probleme pour recuperer les variables d'un formulaire

n°1300758
l3eleg
cosmik connection
Posté le 07-02-2006 à 21:21:24  profilanswer
 

Bonsoir à tous,
j'ai un petit soucis avec l'un de mes formulaires. Je m'explique :
J'avais besoin de creer un formulaire dynamique, c'est a dire que j'ai une suite de listbox et le choix fait par l'utilisateur doit influer sur les listbox suivante, j'ai donc fais une petite fonction en javascript qui permet de modifier les attributs value de la listbox suivant, elle fonctionne tres bien, mais malheur ! lorsque je récupère le contenu de la variable POST en php, j'ai un champ vide !
Je m'en remet à vous si quelqu'un à une solution, une autre piste à explorer je suis tout ouie :)
 

Code :
  1. // Récupeation des variables post
  2.   if (isset($_POST['part2_race']))
  3.     $part2['race']    = $_POST['part2_race'];
  4.   else     $part2['race']    = ""; 
  5.   if (isset($_POST['part2_peau']))
  6.     $part2['peau']   = $_POST['part2_peau'];
  7.   else     $part2['peau']   = "";


 

Code :
  1. function Choix(formulaire)
  2. {
  3. i = formulaire.part2_race.selectedIndex;
  4. if (i == 0)
  5.   {
  6.   for (i=0;i<3;i++)
  7.     {
  8.     formulaire.part2_peau.options[i].text="";
  9.     }
  10.   return;
  11.   }
  12. switch (i)
  13.   {
  14.   case 1 : var txt = new Array ('2786','2787','2813','1157','2101','2401','1892','1900','996'); break;
  15.   case 2 : var txt = new Array ('256','555','56','356','556','256','455','355','155'); break;
  16.   case 3 : var txt = new Array ('1635','1622','1215','1623','1621','2118','1632','1627','1205'); break;
  17.   case 4 : var txt = new Array ('1890','848','1887','847','842','852','1881','1880','1889'); break;
  18.   case 5 : var txt = new Array ('1321','2222','1334','2121','2119','1329','690','1330','296'); break;
  19.   case 6 : var txt = new Array ('1810','2413','2108','2107','2309','2307','1052','2310','1819'); break;
  20.   case 7 : var txt = new Array ('1868','1805','1832','1048','1843','1142','1833','1143','1043'); break;
  21.   case 8 : var txt = new Array ('1720','1512','242','1126','144','343','1723','1503','1126'); break;
  22.   case 9 : var txt = new Array ('2006','2209','868','1425','1412','1431','1439','2128','667'); break;
  23.   }
  24. formulaire.part2_peau.options[0].text="Couleur de peau";
  25. for (i=0;i<9;i++)
  26. {
  27.   formulaire.part2_peau.value[i+1]=txt[i];
  28.   formulaire.part2_peau.options[i+1].text=txt[i];
  29. }
  30. }


 

mood
Publicité
Posté le 07-02-2006 à 21:21:24  profilanswer
 

n°1300776
Ricco
Retour au pays
Posté le 07-02-2006 à 21:51:12  profilanswer
 

Code :
  1. function Choix(formulaire)
  2. {
  3. i = formulaire.part2_race.selectedIndex;
  4. if (i == 0)
  5.   {
  6.   for (i=0;i<3;i++)
  7.     {
  8.     formulaire.part2_peau.options[i].text="";
  9.     }
  10.   return;
  11.   }
  12. switch (i)
  13.   {
  14.   case 1 : var txt = new Array ('2786','2787','2813','1157','2101','2401','1892','1900','996'); break;
  15.   case 2 : var txt = new Array ('256','555','56','356','556','256','455','355','155'); break;
  16.   case 3 : var txt = new Array ('1635','1622','1215','1623','1621','2118','1632','1627','1205'); break;
  17.   case 4 : var txt = new Array ('1890','848','1887','847','842','852','1881','1880','1889'); break;
  18.   case 5 : var txt = new Array ('1321','2222','1334','2121','2119','1329','690','1330','296'); break;
  19.   case 6 : var txt = new Array ('1810','2413','2108','2107','2309','2307','1052','2310','1819'); break;
  20.   case 7 : var txt = new Array ('1868','1805','1832','1048','1843','1142','1833','1143','1043'); break;
  21.   case 8 : var txt = new Array ('1720','1512','242','1126','144','343','1723','1503','1126'); break;
  22.   case 9 : var txt = new Array ('2006','2209','868','1425','1412','1431','1439','2128','667'); break;
  23.   }
  24. formulaire.part2_peau.options[0].text="Couleur de peau";
  25. for (i=0;i<9;i++)
  26. {
  27.   formulaire.part2_peau.options[i+1].value=txt[i];
  28.   formulaire.part2_peau.options[i+1].text=txt[i];
  29. }
  30. }


 
Je pense que l'erreur viens de la ligne 28
J'aimerais bien que tu nous montre le code html complet, perso j'ai du en refaire un vite fait mais j'étais obligé de mettre des "document.getElementById('part_peau')" en definissant l'id du select à 'part_peau' à la place de tous les "formulaire.part2_peau"


Message édité par Ricco le 07-02-2006 à 21:53:15

---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
n°1300779
l3eleg
cosmik connection
Posté le 07-02-2006 à 21:54:48  profilanswer
 

Code :
  1. <tr>
  2.       <td><img src="images/info.gif"  onMouseOver="return overlib('<p></p>',WIDTH, 430 ,CENTER)" onMouseOut="return nd();" href="javascript:void(0);" style="cursor:help"> Race du personnage : </td><td>
  3.   <select name="part2_race" class="champ" onChange='Choix(this.form)'>
  4.     <option value="-1" selected>Choix Race</option>
  5.    <option value="Campare">Campare</option>
  6.    <option value="Coltenne">Coltenne</option>
  7.    <option value="Fleire">Fleire</option>
  8.    <option value="Habrude">Habrude</option>
  9.    <option value="Ketcha">Ketcha</option>
  10.    <option value="Osmate">Osmate</option>
  11.    <option value="Spina">Spina</option>
  12.    <option value="Teonal">Teonal</option>
  13.    <option value="Zaure">Zaure</option>
  14.   </select>
  15.    </td>
  16.     </tr>
  17.  <tr>
  18.       <td>Couleur de peau du personnage : </td><td>
  19.   <select name="part2_peau" class="champ">
  20.    <option value="2786" selected>2786</option>
  21.    <option value="2787">2787</option>
  22.    <option value="2813">2813</option>
  23.    <option value="1157">1157</option>
  24.    <option value="2101">2101</option>
  25.    <option value="2401">2401</option>
  26.    <option value="1892">1892</option>
  27.    <option value="1900">1900</option>
  28.    <option value="996">996</option>
  29.   </select>
  30.    </td>
  31.     </tr>
  32.  <tr>
  33.       <td>Couleur de poils du personnage : </td><td>
  34.   <select name="part2_poil" class="champ">
  35.    <option value="2786" selected>2786</option>
  36.    <option value="2787">2787</option>
  37.    <option value="2813">2813</option>
  38.    <option value="1157">1157</option>
  39.    <option value="2101">2101</option>
  40.    <option value="2401">2401</option>
  41.    <option value="1892">1892</option>
  42.    <option value="1900">1900</option>
  43.    <option value="996">996</option>
  44.   </select>
  45.    </td>
  46.     </tr>


 
Merci pour ta réponse tout d'abord,
voici l'extrait du formulaire correspondant ;)

n°1300804
Ricco
Retour au pays
Posté le 07-02-2006 à 22:20:43  profilanswer
 

Ah ok, ça fonctionne alors :D
 
Par contre, à la ligne 26, faut que je mettre for (i=0;i<8;i++) sinon ça me met une erreur lors de l'accès de formulaire.part2_peau.options[9]    


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
n°1300814
l3eleg
cosmik connection
Posté le 07-02-2006 à 22:34:24  profilanswer
 

ca fonctionne .??
Pq mes variables sont vides alors  :pfff:  :pt1cable:

n°1300842
Ricco
Retour au pays
Posté le 07-02-2006 à 23:05:58  profilanswer
 

Enfin ça marche ... y'a plus d'erreur et les champs values sont biens changés, contrairement à avant :D
 
J'ai pas envie de lancer php mais à priori ça devrait tourner. Ca donne quoi un print_r( $_POST ) ?


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
n°1300855
l3eleg
cosmik connection
Posté le 07-02-2006 à 23:19:30  profilanswer
 

Code :
  1. Array ( [part2_nom] => personnage de test [part2_sexe] => M [part2_race] => Coltenne [part2_peau] => 2813 [part2_poil] => 996) < CREATION DU PERSONNAGE ACCEPTEE >


 
Le probleme est qu'il ne prend pas la value changée par le js mais bien la value par défaut qui est dans le .html ...
Donc soit je me suis planté qqpart, soit je ne comprends vraiment plus rien :D
(il aurait du mettre 555 et pas 2813)
 

n°1300863
Ricco
Retour au pays
Posté le 07-02-2006 à 23:27:20  profilanswer
 

Et comment t'envoie le formulaire ?


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
n°1300868
l3eleg
cosmik connection
Posté le 07-02-2006 à 23:40:02  profilanswer
 

Code :
  1. <form action="inscription2.php?action=partie2fin" method="post" id="partie2fin">


Je l'envoie en post sur une partie de mon script d'inscription qui se charge de lire le tableau POST, de le copier dans une variable locale, de passer celle ci a la moulinette pour enlever les saletées (injection, code malicieux) avant de balancer le tout dans MYSQL par une requete.
Tout fonctionne parfaitement, les autres variables sont ok, juste le javascript qui ne passe pas.

n°1300959
l3eleg
cosmik connection
Posté le 08-02-2006 à 08:54:00  profilanswer
 

personne ne sait ?
je suis sensé rendre mon projet aujourd'hui et c'est le seul bug qu'il me reste :s

mood
Publicité
Posté le 08-02-2006 à 08:54:00  profilanswer
 

n°1301112
omega2
Posté le 08-02-2006 à 11:20:26  profilanswer
 

Juste pour savoir, tes "select" ils sont bien dans le formulaire?
Et t'as bien choisit la couleur dans le navigateur avant de le valider?

n°1301441
l3eleg
cosmik connection
Posté le 08-02-2006 à 16:10:20  profilanswer
 

oué oué ... je suis pas un novice en plus mis à part en javascript :p
Toutes les autres variables passent bien donc ca doit vraiment venir du js ...
Je sèche total ^^


Message édité par l3eleg le 08-02-2006 à 17:42:35

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP&JAVASCRIPT] Probleme pour recuperer les variables d'un formulaire

 

Sujets relatifs
[PHP] tableau ( $num[$i] )probleme avec preparedStatement
Problème avec la balise embedenvoie résultat d'un formulaire sur liste de contacts
problème saisie semi-automatique (autocomplete) avec javascriptNoms de variables et dossier dans une boucle
Formulaire à choix multiple (PHP/SQL)Problème d'image
Plus de sujets relatifs à : [PHP&JAVASCRIPT] Probleme pour recuperer les variables d'un formulaire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR