Test sur liste deroulante qui bug !

Test sur liste deroulante qui bug ! - HTML/CSS - Programmation

Marsh Posté le 23-06-2006 à 09:58:46    

Hello !
 
J'ai un test javascript sur une liste deroulante
 
<select>
<option value=9999> blablabla </option>
<option> les autres valeurs </option>
</select>
 
on submit => return chekformAjoutPanier
 
------------------------------------------------------
 
La fonction javascript:
 
if (document.AjoutPanier.taille.value==9999)
 alert("choisissez une taille" )
return (false)
 
------------------------------------------------------
 
Le probleme c'est que l'affichage des vetements et donc des listes est dans un WHILE (tant qu'il y a des vetements dans la tables, j'affiche)
 
Et donc, lorsque j'ai un seul vetement, le test fonctionne bien.
 
Si j'ai plus de deux vetements le test passe pas, il valide le form et me met 9999 en taille dans mon panier :s
 
Bizzare non ?

Reply

Marsh Posté le 23-06-2006 à 09:58:46   

Reply

Marsh Posté le 23-06-2006 à 10:02:01    

un code JS un peu plus complet ne te fera pas de mal, car là tu file keudal :o
 
déjà met des guillemets pour les attributs value="9999"
 
ensuite si tu donnais un exemple plus concret de ton truc au lieu d'une valeur :o, je suis sur qu'il  y a une couille ailleurs.
 
et puis maintenant c'est pas comme ça qu'on accède à un élément, mais par un id
 
document.getElementById("monid" );

Reply

Marsh Posté le 23-06-2006 à 10:12:21    

un fichier veste_homme.php (par exemple)
dedans il affiche toute les vestes homme ...
dedans on appelle mon fichier test.js qui contient tout les test utile pour mon site.
 
dans test.js cette fonction

Code :
  1. function checkformAjoutPanier()
  2. {
  3. if (document.AjoutPanier.taille=="9999" )
  4.    {
  5.      alert("Veuillez choisir une taille !" )
  6.      return false;
  7.    }
  8. }


et donc dans veste_homme.php un formulaire

Code :
  1. <form name=\"AjoutPanier\" action=\"index.php?add=panier.php&id=".$data["id_article"]."&ajoutPanier=AJOUTER\" method=\"post\">
  2.      <td colspan=2><div align=center>
  3.    <select name=\"taille\">
  4.     <option value="9999">Choisissez votre taille</option>" );
  5.     $i=1;
  6.     while ($data["taille".$i]!="VIDE" )
  7.     {
  8.      echo ("<option>taille ".$data["taille".$i]."</option>" );
  9.      $i++;
  10.     };
  11.    echo ("</select>
  12.    </div>
  13.   </td>
  14.  </tr>
  15. </table>
  16. <br><br>
  17. <input name=\"ajout_panier\" type=\"submit\" value=\"Ajouter au panier\">
  18. </form>


le formulaire etant dans un WHILE général :

Code :
  1. while ($data= mysql_fetch_array($req))
  2. { }


En resultat, si un seul vetement le test marche , si plusieur il marche pas, valide et met 9999 en taille dans le panier.


Message édité par guelaztapond le 23-06-2006 à 10:22:43
Reply

Marsh Posté le 23-06-2006 à 10:16:56    

== dans ton if
 
edit: d'ailleurs c'est pas la seule erreur ...  
Comme te l'a expliqué Gatsu tu ferais mieux d'utiliser l'id mais admettons que tu restes avec l'accès par formulaire.
 
Tu accèdes directement à ton select dans ton js et pas à l'option ( ou les options) selectionnées.
Il faut que tu récupères le selected index de ton select, puis que tu testes si la valeur de l'option correspondante est bien 9999

Message cité 1 fois
Message édité par anapajari le 23-06-2006 à 10:18:51
Reply

Marsh Posté le 23-06-2006 à 10:18:19    

oups j'ai corrigé ! dans mon code il est bien "==" j'ai mal recopié ;)

Reply

Marsh Posté le 23-06-2006 à 10:21:17    

Applique les modifs indiqué par Gatsu
 
Puis reviend avec le code généré de la page, pas le code dans tes fichiers :o
 
Et merci de mettre le code dans des balises [ code] pour le forum c'est plus lisible
 

Code :
  1. Whouhhhh c'est beau


Message édité par xtof_83 le 23-06-2006 à 10:21:54
Reply

Marsh Posté le 23-06-2006 à 10:22:40    

anapajari a écrit :

== dans ton if
 
edit: d'ailleurs c'est pas la seule erreur ...  
Comme te l'a expliqué Gatsu tu ferais mieux d'utiliser l'id mais admettons que tu restes avec l'accès par formulaire.
 
Tu accèdes directement à ton select dans ton js et pas à l'option ( ou les options) selectionnées.
Il faut que tu récupères le selected index de ton select, puis que tu testes si la valeur de l'option correspondante est bien 9999


petite note :  
en faisant un monselect.value, tu recupere directement la derniere valeur  sélectionnée :o

Reply

Marsh Posté le 23-06-2006 à 10:25:22    

???? j'ai pas pigé Gatsu :(
 
- POur ce qui est des id je ne sais pas comment çà fonctionne.
- POur le monselect.value ???

Reply

Marsh Posté le 23-06-2006 à 10:41:32    

guelaztapond a écrit :

Et donc, lorsque j'ai un seul vetement, le test fonctionne bien.
Si j'ai plus de deux vetements le test passe pas, il valide le form et me met 9999 en taille dans mon panier :s


gatsu35 a écrit :

petite note :  
en faisant un monselect.value, tu recupere directement la derniere valeur  sélectionnée :o


j'avais cru comprendre que c'était un select multiple :o

Reply

Marsh Posté le 23-06-2006 à 11:01:49    

J'ai compris pourquoi çà bug mais je vois pas trop comment le corriger.
 
EN fait sachant j'ai un <option id="test">choisissez une taille</option>
 
et que cet <option> est dans un while, lors d'un seul vetement le test java fonctionne, mais si plusieur vetements il fonctionne pas !
 
Pourquoi ? parce que comme les <option> ont le meme id="test" il faut que TOUS soit different du "choisissez une taille" ! Or si je choisi pour le vetements n°2 le n°1 reste inchangé et donc => alert (veuillez selectionner une taille) !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed