Comment recupere un id a travers un champs deroulant

msi79 - 18 août 2014 à 20:10
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 19 août 2014 à 20:57
Bonjour,
je voudrais en sélectionnant un élément d'un champs d'une liste déroulante ouvrir une nouvelle page et en même temps récupérer un id .
il se trouve que en sélectionnant l'élément de la liste c'est le seul et même id qui apparait
je sais pas si dois mettre ce sujet dans JavaScript ou PHP.

voici mon code:
        <select   style="size:auto;border:1px dotted red;background-color:#FF0" placeholder="Designation :" name="helper" id="helper" size="1" onChange="appel_pages('helper');">
          <option value="-1" selected>Désignation:</option><!-- il faut absolument cette ligne pour toujours avoir un changement -->
          <?php
				$req2 = "SELECT DISTINCT  categorie,id  FROM categorie_art GROUP BY categorie  ";
				$res2 = mysql_query($req2) or die("erreur dans la requête $req");
				while ($tab2 = mysql_fetch_object($res2)){
				  echo "<option value='famille'>".$tab2->categorie."</option>";
		  ?>
         <script language="javascript">
          function appel_pages(id_lire){
           var page="index.php?page="+document.getElementById(id_lire).value+"&famille=<?php echo $tab2->id; ?>";//lecture page selest dans la lsite
          if (page == -1){//si l'utilisateur revient sur la première ligne
                return
           }
           document.form1.action=page;//on modifie l'action du formulaire
           document.form1.submit();//on envoie le formulaire
          }
		</script>
		 <?php   
            }
		 ?>
        </select>

5 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
18 août 2014 à 20:26
Bonjour MSI ( tu feras gaffe... tu as posté sans être connecté).

Pour en revenir à ton souci :
il se trouve que en sélectionnant l'élément de la liste c'est le seul et même id qui apparait
... dis voir... l' "ID" en question qui apparait toujours... ne serait-ce pas "FAMILLE" ?

Si comme je le pense.. la réponse est OUI... je dirais que... c'est normal vu ce que tu as écris :
while ($tab2 = mysql_fetch_object($res2)){
	echo "<option value='famille'>".$tab2->categorie."</option>";



Il te faudrait peut être modifier la VALUE de tes OPTIONS pour y mettre l' ID de la catégorie voulue (ou son nom)...

par exemple :

<option value='".$tab2->categorie."'>
     ".$tab2->categorie."
</option>";

0
oui jai pensé à ça mais ils trouve que je serai obligé de créer une page pour chaque catégorie ou je veux pas ça . je veux une seul page et a partir des id poursuivre mon travail
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
Modifié par jordane45 le 18/08/2014 à 20:45
Ben... tu appelles la page FAMILLE et tu passes l'ID de la catégorie choisie...

Donc dans ton ONCHANGE tu lui passe l'ID selectionné...
onChange="appel_pages('helper',this.value)"



  function appel_pages(id_lire,id_sel){
var page="index.php?page="+document.getElementById(id_lire).value+"&famille="+id_sel;

0
voici ce que j'ai mis et ça passe plus du tout:
       
<select style="size:auto;border:1px dotted red;background-color:#FF0" placeholder="Designation :" name="helper" id="helper" size="1" onChange="appel_pages('helper',this.value)">
<option value="-1" selected>Désignation:</option><!-- il faut absolument cette ligne pour toujours avoir un changement -->
<?php
$req2 = "SELECT DISTINCT categorie,id FROM categorie_art GROUP BY categorie ";
$res2 = mysql_query($req2) or die("erreur dans la requête $req");
while ($tab2 = mysql_fetch_object($res2)){
echo "<option value='famille'>".$tab2->categorie."</option>";
?>
<script language="javascript">
function appel_pages(id_lire){
var page="index.php?page="+document.getElementById(id_lire).value+"&famille="+id_sel;
//var page="index.php?page="+document.getElementById(id_lire).value+"&famille=";//lecture page selest dans la lsite
if (page == -1){//si l'utilisateur revient sur la première ligne
return
}
document.form1.action=page;//on modifie l'action du formulaire
document.form1.submit();//on envoie le formulaire
}
</script>
<?php
}
?>
</select>
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
19 août 2014 à 00:10
tu as zappé un morceau du code que je t'ai donné..... et ta fonction... faut peut être lui passé les paramètres....
function appel_pages(id_lire,id_sel){


Si malgré ça ..ça ne fonctionne toujours pas... dis moi ce que tu obtiens dans l'URL lorsque tu fais un choix dans ton select.

Ajoutes éventuellement des ALERT dans ton code pour savoir si tu rentres bien dedans et si les valeurs sont bonnes...

par exemple :

function appel_pages(id_lire,id_sel){
alert('id_lire : ' + id_lire);
alert('id_sel : ' + id_sel);
var page="index.php?page="+document.getElementById(id_lire).value+"&famille="+id_sel;

0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
19 août 2014 à 00:20
ah et au fait... finalement toi.. tu veux le TEXT selectionné... et pas la VALUE .. ?


testes ça :

var selectElmt = document.getElementById("helper");
var laValue= selectElmt.options[selectElmt.selectedIndex].value;
var textselectionne = selectElmt.options[selectElmt.selectedIndex].text;
alert("laValue : " + laValue + " textselectionne :" + textselectionne );
0
j'ai tenté ceci mais il me retourne famille or je veux récupérer le ID de la catégorie sélectionnée.
voici le code:
       <select   style="size:auto;border:1px dotted red;background-color:#FF0" placeholder="Designation :" name="helper" id="helper" size="1" onChange="appel_pages('helper',this.value)">
<option value="-1" selected>Désignation:</option><!-- il faut absolument cette ligne pour toujours avoir un changement -->
<?php
$req2 = "SELECT DISTINCT categorie,id FROM categorie_art GROUP BY categorie ";
$res2 = mysql_query($req2) or die("erreur dans la requête $req");
while ($tab2 = mysql_fetch_object($res2)){
echo "<option value='famille'>".$tab2->categorie."</option>";
?>
<script language="javascript">
function appel_pages(id_lire,id_sel){
var page="index.php?page="+document.getElementById(id_lire).value+"&famille="+id_sel;
if (page == -1){//si l'utilisateur revient sur la première ligne
return
}
document.form1.action=page;//on modifie l'action du formulaire
document.form1.submit();//on envoie le formulaire
}
</script>
<?php
}
?>
</select>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ok je commence a avancer . l'alerte de :
var selectElmt = document.getElementById("helper");
var laValue= selectElmt.options[selectElmt.selectedIndex].value;
var textselectionne = selectElmt.options[selectElmt.selectedIndex].text;
alert("laValue : " + laValue + " textselectionne :" + textselectionne );

me donne :
laValue : famille textselectionne :MATERIEL INFORMATIQUE.
.
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
19 août 2014 à 20:57
Et donc... que te manque t'il ?
0
Rejoignez-nous