Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Messages recommandés

Posté(e) (modifié)

Bonjour tout le monde !!!

 

Voila je travail sur le langage javascript, et je ne sais pas comment recuperer certaines valeurs !

 

Je m'explique :

 

function chart(form1)
{
  var article=form1.choixart.selectedIndex;
  switch(article)
    {
      case 0:
      form1.lstart.options[0].text="article 1 - 20 euros";
      form1.lstart.options[1].text="article 2 - 22 euros";
      form1.lstart.options[2].text="article 3 - 28 euros";
      form1.lstart.options[3].text="article 4 - 5 euros";
      break;
     }
 }

 

Voila maintenant, j'aimerais savoir comment recuperer les valeurs pour les articles, par exemple article 1 recuperer la valeur 20 (20€ prix de l'article) et ainsi de suite pour les autres articles !

 

Ca ne serait pas quelque chose du genre form1.lstart.options[0].value="20" ?!

Mais si c'est cela, je ne vois pas comment le mettre, si c'est a la suite du text ou si c'est autre chose encore ...

 

Merci d'avance !!!!

:P

Modifié par bloodyxdeath

Posté(e)

Salut !

 

Oui mais le probleme c'est que j'appel une fonction qui fais que la liste change, je m'explique car je ne semble pas tres clair :/

 

J'ai une premiere liste deroulante avec un choix entre 3 option, selon le choix du client, le liste deroulante en dessous et modifier par exemple le client choisi son genre musical, Rock ou Punk et selon son choix ds la seconde liste les albums en vente sont differents selon le style rock et punk, donc si je met les values dans les options la veleur sera tjrs la mm peut importe le choix de la liste non ? Meme si le gars change la premiere option aura tjrs la mm valeur peut importe le prix de l'article non ? suis-je encore clair ? :/

Posté(e) (modifié)

Tu vas devoir crééer autant de calque qu'il y a de listes déroulantes secondaires, puis masquer ces calques.Ensuite, suivant le choix fait dans la première liste déroulante, tu afficheras le calque contenant la liste déroulante concernée.

Modifié par le Visiteur
Posté(e)

bloodyxdeath : il faut rafraîchir la valeur lorsque tu changes le contenu de la liste de sélection... ca marche sans pb... si j'ai 5 minutes je te fais une page d'exemple

 

le Visiteur : il parle d'un <select> dans un formulaire, pas d'un menu déroulant en DHTML... ou alors j'ai pas compris quelle solution tu envisages de mettre en place...

Posté(e)

dsl le visiteur j'ai pas tout compris, jsuis debutant :/

 

par contre kewlcat je pense que c'est bien ce que tu dis sauf que je ne sais aps comemnt faire, mon code n'est pas sur ce pc, des que je peux, je devrais pouvoir le faire ds la journee, je mettrai le code "complet" de ma page !

 

Merci

 

PS : Merci pour la page, si tu as t'es 5 mins de libre :P

Posté(e) (modifié)

Voila je vais mettre mon code, pas la peine de preciser que tout est fictif c'est juste pour un TP ^^

 


<html>
<head>
 <title>Ventes de CD's</title>
 <script>
  function chgart(form1)
   {
    var article=form1.choixart.selectedIndex;
    switch(article)
{
 case 0: // Rock
 form1.lstart.options[0].text="Muse - Absolution (19 euros)"
        form1.lstart.options[0].value="19";
 form1.lstart.options[1].text="Foo Fighters - All My Life (15 euros)"
        form1.lstart.options[1].value="15";
 form1.lstart.options[2].text="Noir Désir - 666.667 Club (13 euros)"
        form1.lstart.options[2].value="13";
 form1.lstart.options[3].text="Placebo - Sleeping With Ghost (11 euros)"
        form1.lstart.options[3].value="11";
 break;

 case 1: // Punk
 form1.lstart.options[0].text="NOFX - Pump Up The Valuum (10 euros)"
        form1.lstart.options[0].value="10";
 form1.lstart.options[1].text="Rancid - Indestructible (13 euros)"
        form1.lstart.options[1].value="13";
        form1.lstart.options[2].text="Bad Religion - The Process Of Belief (16 euros)"
        form1.lstart.options[2].value="16";
 form1.lstart.options[3].text="The Offspring - Ixnay On The Hombre (9 euros)"
        form1.lstart.options[3].value="9";
 break;

 case 2: // Metal
 form1.lstart.options[0].text="Decline Of Humanity - Explicit Liar (3 euros)"
        form1.lstart.options[0].value="3";
 form1.lstart.options[1].text="Slayer - Season In The Abyss (12 euros)"
        form1.lstart.options[1].value="12";
 form1.lstart.options[2].text="The haunted - Made Me Do It (17 euros)"
        form1.lstart.options[2].value="17";
 form1.lstart.options[3].text="System Of A Down - Toxicity (15 euros)"
        form1.lstart.options[3].value="15";
 break;
}
   }

   function verif(num)
   {
    switch(num)
     {
      case 1: //Client non
      document.formulaire.client[0].checked=true;
      document.formulaire.client[1].checked=false;
      document.formulaire.duree[0].checked=false;
      document.formulaire.duree[1].checked=false;
      document.formulaire.duree[2].checked=false;
      break;

      case 2: //Client oui
      document.formulaire.client[0].checked=false;
      document.formulaire.client[1].checked=true;
      document.formulaire.duree[0].checked=false;
      document.formulaire.duree[1].checked=false;
      document.formulaire.duree[2].checked=false;
      break;

      case 3: //Moins de 6 mois
      document.formulaire.client[0].checked=false;
      document.formulaire.client[1].checked=true;
      document.formulaire.duree[0].checked=true;
      document.formulaire.duree[1].checked=false;
      document.formulaire.duree[2].checked=false;
      break;

      case 4: //Entre 6 et 8 mois
      document.formulaire.client[0].checked=false;
      document.formulaire.client[1].checked=true;
      document.formulaire.duree[0].checked=false;
      document.formulaire.duree[1].checked=true;
      document.formulaire.duree[2].checked=false;
      break;
 
      case 5: //Plus de 8 mois
      document.formulaire.client[0].checked=false;
      document.formulaire.client[1].checked=true;
      document.formulaire.duree[0].checked=false;
      document.formulaire.duree[1].checked=false;
      document.formulaire.duree[2].checked=true;
      break;

    }
   }

   function estim(formulaire)
   {
    cout_album=0;
    for (i=0;i<formulaire.lstart.lenght;i++)
        {if (formulaire.lstart.options[i].selected == true)
          cout_album = parseInt(formulaire.lstart.options(i).value);
        };

    for(i=0;i<formulaire.client.lenght;i++)
       {if (formulaire.client[i].checked == true)
         fport = parseInt(formulaire.client[i].value);
       };

    for(i=0;i<formulaire.duree.lenght;i++)
       {if (formulaire.duree[i].checked == true)
         rmise = parseFloat(formulaire.duree[i].value);
       };
    
    total = (cout_album+fport)*rmise;
    formulaire.res.value=total;
   }
 
  </script>
 </head>

 <body bgcolor="black"><br><br>
 <center><img src="Blueberry.jpg"><font color="red" size=12>.::. bKe.com .::.</font><img                                                                     src="Blueberry.jpg"><br>
  <font color="red" size="3">Ventes de CD's online !</font></center><br><br>

  <table border="1" bordercolor="white">

   <form name="formulaire"><br><br>
   <font color="silver">Choisissez votre style : 
   <select name="choixart" onchange="chgart(this.form)">
 <option>Rock
 <option>Punk
 <option>Metal
   </select><br><br>

   Choisissez votre album :
   <select name="lstart" multiple>
  <option>Muse - Absolution  (19 euros)
    <option>Foo Fighters - All My Life (15 euros)
 <option>Noir Désir - 666.667 Club (13 euros)
 <option>Placebo - Sleeping With Ghost (11 euros)
   </select><br><br>
   
   Etes vous client ? <input type="checkbox" name="client" value="5" onclick="verif(1)"> Non 
                      <input type="checkbox" name="client" value="0" onclick="verif(2)">                         Oui<br>

   Depuis combien de temps ? <input type="checkbox" name="duree" value="0.05"                                onclick="verif(3)">moins de 6 mois 
                             <input type="checkbox" name="duree" value="0.1"                                onclick="verif(4)">Entre 6 et 8 mois
                             <input type="checkbox" name="duree" value="0.12"                                onclick="verif(5)">plus de 8 mois<br><br>

   Coordonnées :<br> 
   Nom, prénom :<br> <input type="text" name="nom" size="15">
                     <input type="text" name="prenom" size="15"><br>

   Adresse :<br> <input type="text" name="adresse"><br>
   Ville, code postal :<br> <input type="text" name="ville" size="15"> <input type="text"                               name="code postal" size="5"><br><br>
   
   <input type="button" name="estimation" onclick="estim(this.form)" value="Estimation"> de      la commande <input type="text" name="res" size=3><br>
   <input type="reset" name="annuler" value="Réinitialiser"> la commande

  </form>
 </table>
</body>
</html>

 

Voila les lignes dont je ne suis vraiment vraiment pas sur sont celles qui ressemble a ca :

 

form1.lstart.options[0].value="19";

 

Apres j'ai peut etre des erreurs de saisies ou autres je ne sais pas, du moins j'espere pas, apres si on peux m'expliquer comment faire sans necessairement me le faire je suis preneur :P

 

Merci beaucoup !

Soon sooN !

Modifié par bloodyxdeath
Posté(e)

Oh là !

Je t'arrête tout de suite : on doit pouvoir passer une commande "hybride" (c'est à dire sélectionner des articles de plusieurs listes différentes) ?

 

Parce que dans ce cas, tu ne peux pas remplacer la liste à chaque fois que tu changes la catégorie (tu perds ce qui était sélectionné !)

Là, il faut pré-construire ses listes d'options dans des Array et les changer à la volée. Ca permet de conserver ce qui était sélectionné...

 

Je me penche sur le problème ;-)

Posté(e)

arf j'ai l'impression que je vais partir dans un truc trop compliqué pour moi :'(

Au pire je peux faire plusieurs liste deroulante pour chaque style de musique plutot que de faire une liste qui change ? Ce qui est chiant c'est que je suis obligé de repondre a certaines "conditions imposees" par le "prof" :'( !

Posté(e)

C'est pas compliqué... tu pré-construis tes listes, c'est tout :

http://kewlcat.no-ip.org/tests/listedyn.html

 

  <script language="JavaScript" type="text/javascript">

   var listeRock = new Array(4);
   var listePunk = new Array(4);
   var listeMetal = new Array(4);
       
   listeRock[0] = new Option();
   listeRock[0].text = "Muse - Absolution (19 euros)";
   listeRock[0].value = "19";
   listeRock[1] = new Option();
   listeRock[1].text = "Foo Fighters - All My Life (15 euros)";
   listeRock[1].value = "15";
   listeRock[2] = new Option();
   listeRock[2].text = "Noir Desir - 666.667 Club (13 euros)";
   listeRock[2].value = "13";
   listeRock[3] = new Option();
   listeRock[3].text = "Placebo - Sleeping With Ghost (11 euros)";
   listeRock[3].value = "11";
       
   listePunk[0] = new Option();
   listePunk[0].text="NOFX - Pump Up The Valuum (10 euros)"
   listePunk[0].value="10";
   listePunk[1] = new Option();
   listePunk[1].text="Rancid - Indestructible (13 euros)"
   listePunk[1].value="13";
   listePunk[2] = new Option();
   listePunk[2].text="Bad Religion - The Process Of Belief (16 euros)"
   listePunk[2].value="16";
   listePunk[3] = new Option();
   listePunk[3].text="The Offspring - Ixnay On The Hombre (9 euros)"
   listePunk[3].value="9";
       
   listeMetal[0] = new Option();
   listeMetal[0].text="Decline Of Humanity - Explicit Liar (3 euros)"
   listeMetal[0].value="3";
   listeMetal[1] = new Option();
   listeMetal[1].text="Slayer - Season In The Abyss (12 euros)"
   listeMetal[1].value="12";
   listeMetal[2] = new Option();
   listeMetal[2].text="The haunted - Made Me Do It (17 euros)"
   listeMetal[2].value="17";
   listeMetal[3] = new Option();
   listeMetal[3].text="System Of A Down - Toxicity (15 euros)"
   listeMetal[3].value="15";
       
  function chgart(form1)
  {
    var article=form1.choixart.selectedIndex;
                       
    for (i = 0; i < form1.lstart.options.length; i++) {
      form1.lstart.options[i] = null;
    }
    
    switch(article)
    {
      case 0: // Rock
        for (i = 0; i < listeRock.length; i++) {
          form1.lstart.options[i] = listeRock[i];
        }
        break;
             
      case 1: // Punk
        for (i = 0; i < listePunk.length; i++) {
          form1.lstart.options[i] = listePunk[i];
        }
        break;
             
      case 2: // Metal
        for (i = 0; i < listeMetal.length; i++) {
          form1.lstart.options[i] = listeMetal[i];
        }
        break;
    }
  }
  
 </script>

 

L'interêt de les avoir dans des tableaux "à part" c'est qu'elles conservent ce qui a été sélectionné.

Après, pour calculer la note finale, il suffit de parcourir chacun des tableaux à la recherche d'éléments "selected" et d'ajouter la value au total final :-D

 

C'est quoi les contraintes que ton prof t'impose ?

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...