JS/HTML Menus déroulants + value

Fermé
klp - Modifié par klp le 24/01/2012 à 14:58
 klp - 25 janv. 2012 à 11:01
Bonjour,

J'ai récupéré un code javascript me permettant de faire fonctionner 2 menus déroulants.
Le 1er permet de choisir une formation et le 2e, une promotion en étant dépendant du choix du 1er.
J'ai adapté le code à mon besoin et il fonctionne.

Cependant, j'ai remarqué que dans la 1ere liste, les Value des Option sont comme cela :

<OPTION VALUE="Javascript:changePromotion(0)">AAAA</option> 
<OPTION VALUE="Javascript:changePromotion(1)">BBBB</option> 
<OPTION VALUE="Javascript:changePromotion(2)">CCCC</option> 
<OPTION VALUE="Javascript:changePromotion(3)">DDDD</option> 
<OPTION VALUE="Javascript:changePromotion(4)">EEEE</option> 
<OPTION VALUE="Javascript:changePromotion(5)">FFFF</option> 


Au lieu d'avoir une value="1", value="2", etc j'ai ceci :/

Quand je veux enregistrer les choix de l'utilisateur dans ma base de données, cela n'enregistre pas AAAA ou BBBB comme je le voudrai mais Javascript (ce qui est dans le VALUE)


Comment y remédier ?

N'hésitez pas a me mettre des liens vers d'autres solutions de menus déroulants liés :)

Merci de vos réponses



A voir également:

3 réponses

Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
24 janv. 2012 à 15:37
Salut,
essayes d'ajouter un class à tes options, et de récupérer la valeur via cette class
0
<OPTION CLASS="AAAA" VALUE="Javascript:changePromotion(0)">AAAA</option> 


Comme ceci ?

Mais comment récuperer la valeur de CLASS ?
0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
24 janv. 2012 à 16:15
En faite remplace class par id et tu fais :
en Jquery ;
$('#aaaa').val()

et en Javascript :
document.getElementsById('aaaa').value
0
Je suis néophyte en ce qui concerne JS et le jquery m'est totalement inconnu.
Je comprend les codes que tu as marqué mais je ne sais absolument pas où les inclure.

Dans une function déja existante ? dans une nouvelle function ?

Merci de tes réponses
0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
24 janv. 2012 à 16:35
Alors on va oublier Jquery pour le moment.
tu n'es pas obligé de mettre le code que je t'ai fourni dans un fonction mais simplement entre les balises script
<script>
value = document.getElementsById('aaaa').value;
// permet d'afficher une fenetre avec le resultat
alert(value);
</script>

Si le code fonctionne, tu verras apparaitre une fenetre sur ton navigateur avec normalement la valeur de ton option
0
J'ai ajouté ton script dans mon fichier contenant mon formulaire, les balises <script> appellent déja mon script.js des menus déroulants. je l'inclus donc à l'intérieur, aucun résultat :/

J'ai ensuite ajouté ton script dans le fichier qui fait le traitement du formulaire, aucun résultat non plus.

A quel moment ce bout de script viendra s'exécuter avec le choix de l'utilisateur ?
0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
24 janv. 2012 à 16:58
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 25/01/2012 à 11:00
une solution en php:
<html> 
  
 <body> 
<?php 
 if(isset($_POST['enregistrer'])){ 
  //tu recuperes les valeurs postées 
  //  et tu enregistres dans ta BDD 
  
 }else{ 
 //on affiche le formulaire 
   
  if(isset($_POST['formation'])){ 
   //recup valeur postee liste 1 lors du onchange =submit()
   $formation=$_POST['formation']; 
  }else{ 
   $formation=""; //ou init a vide 
  } 
   
   
 ?>  
   <form name="form1" method="post" action=""> 
    Formation: 
    <select name="formation" id="formation" onchange="submit();"> 
    <option value="" <?php if($formation== ""){echo " selected";} ?> >-Choisissez-</option> 
    <option value="AAAA" <?php if($formation== "AAAA"){echo " selected";} ?> >AAAA</option> 
    <option value="BBBB" <?php if($formation== "BBBB"){echo " selected";} ?> >BBBB</option> 
    <option value="CCCC" <?php if($formation== "CCCC"){echo " selected";} ?> >CCCC</option> 
    </select> 
 <?php 
   // 2 ieme liste en fonction du choix de la premiere 
   if(isset($_POST['formation'])){ 
    echo 'Promotion: 
    <select name="promotion" id="promotion" >'; 
    switch($formation){ 
     case "AAAA": 
      echo '<option value="" >-Choisissez-</option> 
       <option value="Pr_A1"?> >Pr_A1</option> 
       <option value="Pr_A2">Pr_A2</option> 
       <option value="Pr_A3">Pr_A3</option>'; 
     break; 
     case "AAAA": 
      echo '<option value="" >-Choisissez-</option> 
       <option value="Pr_b1"?> >Pr_b1</option> 
       <option value="Pr_b2">Pr_b2</option> 
       <option value="Pr_b3">Pr_b3</option>'; 
     break; 
     case "AAAA": 
      echo '<option value="" >-Choisissez-</option> 
       <option value="Pr_c1"?> >Pr_c1</option> 
       <option value="Pr_c2">Pr_c2</option> 
       <option value="Pr_c3">Pr_c3</option>'; 
     break; 
     default: 
      echo "Vous devez choisir une formation dans la liste"; 
     break; 
    } 
    
    echo '</select>'; 
   } 

 ?>    
   <br /><input type="submit" name="enregistrer" value="Enregistrer" /> 
   </form> 
<?php 
 } // fin if enregistrer 
?>   
 </body> 
</html>
0