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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [JS] Problèmes avec listes déroulantes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JS] Problèmes avec listes déroulantes

n°2022593
Gavrinis
Open your mind
Posté le 13-09-2010 à 10:45:10  profilanswer
 

Bonjour,
 
Je dois réaliser un site de commande de viande pour un ami. Mais n'étant pas développeur web de métier, je patine un peu sur le JS.
Premier problème rencontré : les clients peuvent augmenter le nombre de colis choisi mais pas le baisser. (Par exemple Mme Michu prend 3 colis boeuf 5 Kg, tout compte fait elle n'en veut que 2 ; mon formulaire ne veut pas redescendre à 2, mais si elle voulait en choisir un quatrième il n'y aurait pas eu de problème).
 
Second problème : mes fonctions NbrBoeuf5 et NbrBoeuf10 refusent de travailler "ensemble". Si je commente NbrBoeuf10, ma fonction NbrBoeuf5 fonctionne, si je décommente la 10, aucune des deux ne fonctionnent.
 
 
Pouvez-vous m'aider s'il vous plait ? :(
 
Voici le code JS (sûrement pas des plus propres ...) :

Code :
  1. function affCache(idpr)
  2. {
  3.     var pr = document.getElementById(idpr);
  4.     if (pr.style.display == "" )
  5.         {
  6.         pr.style.display = "none";
  7.     } else {
  8.         pr.style.display = "block";
  9.     }
  10. }
  11. function NbrBoeuf5(form)
  12. {
  13.    var nbrColis = document.getElementById("colisboeuf5kg" ).value;
  14.    if (nbrColis > 1)
  15.    {
  16.       for (cpt=1; cpt < nbrColis; cpt++)
  17.       {
  18.          document.getElementById(cpt+'colisboeuf5kg').innerHTML = '<hr>' +
  19.                                                                   '<ul>' +
  20.                                                                   '<li><select name="americaincarbonnade-' + cpt + '" style="width: 175px;">' +
  21.                                                                   '<option value="americain">0,700 kg américain</option>' +
  22.                                                                   '<option value="carbonnade">0,700 kg carbonnade</option>' +
  23.                                                                   '</select></li>' +
  24.                                                                   '</ul>' +
  25.                                                                   '<p />Avec ...<br />'+
  26.                                                                   '<input type="radio" name="boeuf5-'+cpt+'" id="boeuf51" value="rosbeefIIetsteak" /> 0,800 kg rosbeef II<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0,400 kg steak II<br>'+
  27.                                                                   '<input type="radio" name="boeuf5-'+cpt+'" id="boeuf52" value="steakII" /> 1,200 kg steak II<br>'+
  28.                                                                   '<input type="radio" name="boeuf5-'+cpt+'" id="boeuf53" value="steakIetrosbeefI" /> 1,150 kg steak I<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1,000 kg rosbeef I<br>';
  29.          affCache(cpt+'colisboeuf5kg');
  30.       }
  31.    }
  32. }
  33. function NbrBoeuf10(form)
  34. {
  35.    var nbColis = document.getElementById("colisboeuf10kg" ).value;
  36.    if (nbColis > 1)
  37.    {
  38.       for (cpt=1; cpt < nbColis; cpt++)
  39.       {
  40.          document.getElementById(cpt+'colisboeuf10kg').innerHTML = '<hr>' +
  41.                                                                   '<p />Avec ...<br />' +
  42.                                                                   '<input type="radio" name="boeuf10-'+cpt+'" id="boeuf101" value="steakIIetentrecote" /> 1,800 kg steak II<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0,500 kg entrecôte<br>' +
  43.                                                                   '<input type="radio" name="boeuf10-'+cpt+'" id="boeuf102" value="steakIIetpetitnerf" /> 1,800 kg steak II<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0,500 kg petit nerf<br>' +
  44.                                                                   '<input type="radio" name="boeuf10-'+cpt+'" id="boeuf103" value="rosbeefIIetsteak" /> 1,000 kg rosbeef II<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1,300 kg steak<br>' +
  45.                                                                   '<input type="radio" name="boeuf10-'+cpt+'" id="boeuf104" value="coteetfiletetsteak" /> 1,000 kg côte &agrave; l'os<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0,300 kg filet pur<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3,000 kg steak I<br />' +
  46.                                                                   '<input type="radio" name="boeuf10-'+cpt+'" id="boeuf105" value="rosbeefIIetcontrefiletetsteak" /> 1,000 kg rosbeef I<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0,500 kg contrefilet<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2,800 kg steak I<br />';
  47.          affCache(cpt+'colisboeuf10kg');
  48.       }
  49.    }
  50. }


Ma page commande

mood
Publicité
Posté le 13-09-2010 à 10:45:10  profilanswer
 

n°2022721
Gavrinis
Open your mind
Posté le 13-09-2010 à 19:45:50  profilanswer
 

Second problème résolu, ligne 51, l’apostrophe du l'os gênait mes quotes. Solutionné avec l\'os.

n°2023754
gocho
Posté le 20-09-2010 à 02:30:05  profilanswer
 

ben si tu fais par exemple 3, tu vas remplir tes 3 premiers div ==> ok
Si tu passes à 4, ca va remplir les 4 premiers ==> ok
Mais si tu passes à 2 : tu vas remplir les 2 premiers divs, mais tu ne mets pas à vide le 3e, qui reste rempli ==> donc ca ne semble pas diminuer.

 

Tu devrais donc :
 - soit mettre tous les div à vide avant de faire ta boucle de remplissage
 - soit, à la fin, mettre à vide les div ayant un id supérieur au chiffre sélectionné par l'utilisateur.


Message édité par gocho le 20-09-2010 à 02:31:23

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [JS] Problèmes avec listes déroulantes

 

Sujets relatifs
VBA Excel 2003 Problèmes d'affichage et de disparitionRécupérer la valeur d'un bouton radio en JS
[emploi] Recherche développeur PHP/HTML/JS disponible immédiatementJS pour afficher/masquer div ne fonctionne pas
Ajouter du texte à un copié collé en JS ?petits problèmes après mise en ligne
Les JS externes me (sur) ralenti mon site. Améliorer ça ?(JS)Vérifier si un serveur est en ligne avant de faire une redirection
[HTML/JS] application du setTimeOut pour un effet "machine à ecrire"Script Greasemonkey (aka "ça fait lgtps que j'ai plus fait de JS")
Plus de sujets relatifs à : [JS] Problèmes avec listes déroulantes


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