[PHP récupérer l'Id d'une liste déroulante]
Mougeole
Messages postés
34
Date d'inscription
Statut
Membre
Dernière intervention
-
PhP Messages postés 1770 Date d'inscription Statut Membre Dernière intervention -
PhP Messages postés 1770 Date d'inscription Statut Membre Dernière intervention -
Bonjour
J'ai un petit problème avec une liste déroulante.
Ma liste déroulante affiche des noms et je voudrais récupérer l'identifiant.
Voici mon code :
J'ai trouvé ce code dans un forum.
Inconvéniant de ce code :
- les id s'affiche avec les noms (alors que je ne veux afficher que les noms).
- On ne récupère pas l'identifiant.
Est-ce que quelqu'un sait comment récupérer l'identifiant dans une liste déroulante?
Merci d'avance
J'ai un petit problème avec une liste déroulante.
Ma liste déroulante affiche des noms et je voudrais récupérer l'identifiant.
Voici mon code :
while ($donneesb = mysql_fetch_array($reponseb)) { ?> <?php $nomservice1 = $donneesb['NomService']; echo '<option value="'.$donneesb['IdCellule'].'"> '.$donneesb['NomCellule'].'(id='.$donneesb['IdCellule'].')'; ?> </option> <?php } ?>
J'ai trouvé ce code dans un forum.
Inconvéniant de ce code :
- les id s'affiche avec les noms (alors que je ne veux afficher que les noms).
- On ne récupère pas l'identifiant.
Est-ce que quelqu'un sait comment récupérer l'identifiant dans une liste déroulante?
Merci d'avance
A voir également:
- [PHP récupérer l'Id d'une liste déroulante]
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Recuperer message whatsapp supprimé - Guide
- Comment recuperer une video sur youtube - Guide
- Liste déroulante google sheet - Accueil - Guide bureautique
9 réponses
normalement
$donneesb['IdCellule'] est l'identifiant que tu cherche
et
devrait t'afficher juste les noms à l'intérieur de ton menu déroulant
$donneesb['IdCellule'] est l'identifiant que tu cherche
et
echo '<option value="'.$donneesb['IdCellule'].'"> '.$donneesb['NomCellule']; </option>
devrait t'afficher juste les noms à l'intérieur de ton menu déroulant
essaye avec
y'a pas de grand changement juste enlever les . et placer le ; à la fin dans ta liste ca peut suffir, je sais pas trop parce que normalement dans la balise option le critère
echo '<option value="'$donneesb['IdCellule']'"> '.$donneesb['NomCellule']</option>;
y'a pas de grand changement juste enlever les . et placer le ; à la fin dans ta liste ca peut suffir, je sais pas trop parce que normalement dans la balise option le critère
value="ma_valeur"est le critère renvoyé dans le formulaire et il est indépendant du menu écrit dans la liste
Bon
alors voilà ou j'en suis
Voici mon code :
Et voilà.
Quand je fais un echo de la requête, la première fois que je vais sur la page il m'écrit idcellule = 'cellule 2'
Et donc je ne peux pas récupérer le nom de la cellule.
En revanche au deuxième passage (et ceux qui suivent) sans rafraichir la page, il reconnait l'idcellule et il m'affiche dans la requête :
IdCellule = '2'
et je peux récupérer le nom de cellule et tout le reste
Donc ça marche ... mais pas la première fois!!
Est-ce que quelqu'un a déjà rencontré ce problème ou pourrait m'expliquer ce qui va pas dans mon code ?
Merci d'avance.
alors voilà ou j'en suis
Voici mon code :
while ($donneesb = mysql_fetch_array($reponseb)) { ?> <?php echo '<option value="'.$donneesb'IdCellule'].'"> '.$donneesb['NomCellule']; ?> </option> <?php } ?>
<?php $sqlc = "SELECT IdCellule, NomCellule, NomService FROM CELLULES INNER JOIN SERVICES ON RefService = IdServce WHERE IdCellule ='".$_POST['listecellule']."' "; $reponsec = mysql_query($sqlc); $donneesc = mysql_fetch_array($reponsec); $nomcellule = $donneesc['NomCellule']; $nomservice = $donneesc['NomService']; $id = $donneesc['IdCellule']; ?>
Et voilà.
Quand je fais un echo de la requête, la première fois que je vais sur la page il m'écrit idcellule = 'cellule 2'
Et donc je ne peux pas récupérer le nom de la cellule.
En revanche au deuxième passage (et ceux qui suivent) sans rafraichir la page, il reconnait l'idcellule et il m'affiche dans la requête :
IdCellule = '2'
et je peux récupérer le nom de cellule et tout le reste
Donc ça marche ... mais pas la première fois!!
Est-ce que quelqu'un a déjà rencontré ce problème ou pourrait m'expliquer ce qui va pas dans mon code ?
Merci d'avance.
Bsr
Bizarre, normalement PHP récupère les valeurs des options jamais leur texte
Ton problème est peut-être dû au cache de ton navigateur surtout si tu modifies souvent ton code.
Ferme tes pages HTML et PHP puis vide le cache de ton navigateur
Sous IE :
Menu [Outils][Options Internet ...] onglet [Général] puis bouton [Supprimer les fichiers ...] coche "Supprimer tout le contenu hors connexion" et [OK]
Sous FF :
Menu [Outils][Options ...] onglet [Vie Provée][Cache] puis bouton [Vider le cache]
Nota : tu as un raccourcit par [Outils][Effacer mes traces ...] Cool FF
@+
Bizarre, normalement PHP récupère les valeurs des options jamais leur texte
Ton problème est peut-être dû au cache de ton navigateur surtout si tu modifies souvent ton code.
Ferme tes pages HTML et PHP puis vide le cache de ton navigateur
Sous IE :
Menu [Outils][Options Internet ...] onglet [Général] puis bouton [Supprimer les fichiers ...] coche "Supprimer tout le contenu hors connexion" et [OK]
Sous FF :
Menu [Outils][Options ...] onglet [Vie Provée][Cache] puis bouton [Vider le cache]
Nota : tu as un raccourcit par [Outils][Effacer mes traces ...] Cool FF
@+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut
Merci pour ta réponse
Alors j'ai bien réglé le problème du cache dans FF, j'ai même rajouté les header qui vont bien
et rien n'y fait.
C'est d'un chiant.....
Alors je me demandais, quand je récupère $_POST['listecellule'], la première fois il récupère le Nom de la cellule et les fois qui suivent l'ID de la cellule.
Est-ce qu'il y aurait moyen de faire une éspèce de "double tableau associatif" du genre $_POST['listecellule']['IdCellule']
Je dis bien du genre parce que j'ai déjà essayé ça et ça marche pas.
Si quelqu'un a une idée ?
Merci d'avance
Merci pour ta réponse
Alors j'ai bien réglé le problème du cache dans FF, j'ai même rajouté les header qui vont bien
<?php header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); ?>
et rien n'y fait.
C'est d'un chiant.....
Alors je me demandais, quand je récupère $_POST['listecellule'], la première fois il récupère le Nom de la cellule et les fois qui suivent l'ID de la cellule.
Est-ce qu'il y aurait moyen de faire une éspèce de "double tableau associatif" du genre $_POST['listecellule']['IdCellule']
Je dis bien du genre parce que j'ai déjà essayé ça et ça marche pas.
Si quelqu'un a une idée ?
Merci d'avance
Salut
Sur PHP débutant , j'ai trouvé un petit bout de code sur le tableau associatif $_POST
J'ai rajouté ce bout de code dans ma page PHP et voilà le résultat
la première fois
listecellule=>cellule 2
btnMajCell=>Mettre à jour
la deuxième fois et les suivantes
listecellule=>2
btnMajCell=>Mettre à jour
Ca confirme bien les résultats observés...
Sur PHP débutant , j'ai trouvé un petit bout de code sur le tableau associatif $_POST
<?php if(isset($_POST)) { foreach($_POST as $key=>$val) { echo $key.'=>'.$val.'<p>'; } } ?>
J'ai rajouté ce bout de code dans ma page PHP et voilà le résultat
la première fois
listecellule=>cellule 2
btnMajCell=>Mettre à jour
la deuxième fois et les suivantes
listecellule=>2
btnMajCell=>Mettre à jour
Ca confirme bien les résultats observés...
Bjr
Au risque de dire une c... t'aurais pas un enregistrement dans ta table MySQL avec "Cellule 2" comme valeur du champ IdCellule
Vérifie avec PhpMyAdmin
Sinon poste le source de ta page générée (la premère celle qui plante) : pas le code PHP (quoique) mais le code HTML que tu obtiens en faisant menu [Affichge][Source]
Comment ca "au deuxième passage sans recharger la page " ??????
Tu es obliger de recharger la page en PHP !
Je comprends pas ...
Astuce : pour voir le contenu de $_POST[]
tu peux aussi faire
mieux
ainsi c'est "propre" même en HTML
Au risque de dire une c... t'aurais pas un enregistrement dans ta table MySQL avec "Cellule 2" comme valeur du champ IdCellule
Vérifie avec PhpMyAdmin
Sinon poste le source de ta page générée (la premère celle qui plante) : pas le code PHP (quoique) mais le code HTML que tu obtiens en faisant menu [Affichge][Source]
Comment ca "au deuxième passage sans recharger la page " ??????
Tu es obliger de recharger la page en PHP !
Je comprends pas ...
Astuce : pour voir le contenu de $_POST[]
tu peux aussi faire
<?php echo var_dump($_POST); ?>
mieux
<?php echo "<pre>"; echo var_dump($_POST); echo "</pre>"; ?>
ainsi c'est "propre" même en HTML
salut
J'ai vérifié dasn phpmyadmin : je n'ai pas de "cellule 2" dans mon champs IdCellule. Avoir du text dans un champs auto incrémentiel faut être balaise pour réussire un coup pareil.
Mais non tu ne dit pas de c... après tout une fausse manip est si vite arrivée :)
J'ai essayé ça
<?php
echo var_dump($_POST);
?>
et ça confirme ce que j'avais déjà.
Pour cette Histoire de passage je t'explique :
Le premier passage correspond à la première fois que tu accède à la page.
Le deuxième passage et les autres c'est quand tu es sur cette page et que tu réapuie sur le bouton du formulaire
Ensuite tu change de page et tu reviens sur la page qui pose problème.
Tu te retrouve dans le cas du premier passage.
J'ai pourtant bien vider mon cache et j'ai activé l'option "vider la cache à chaque fois que je vois cette page".
Ya un truc qui cloche c'est sur. Je n'ai rien vu d'anormal dans le code source je n'ai rien vu d'anormal
J'ai vérifié dasn phpmyadmin : je n'ai pas de "cellule 2" dans mon champs IdCellule. Avoir du text dans un champs auto incrémentiel faut être balaise pour réussire un coup pareil.
Mais non tu ne dit pas de c... après tout une fausse manip est si vite arrivée :)
J'ai essayé ça
<?php
echo var_dump($_POST);
?>
et ça confirme ce que j'avais déjà.
Pour cette Histoire de passage je t'explique :
Le premier passage correspond à la première fois que tu accède à la page.
Le deuxième passage et les autres c'est quand tu es sur cette page et que tu réapuie sur le bouton du formulaire
Ensuite tu change de page et tu reviens sur la page qui pose problème.
Tu te retrouve dans le cas du premier passage.
J'ai pourtant bien vider mon cache et j'ai activé l'option "vider la cache à chaque fois que je vois cette page".
Ya un truc qui cloche c'est sur. Je n'ai rien vu d'anormal dans le code source je n'ai rien vu d'anormal
Pouvait pas deviner que t'utilisais des autoincréments ! LOL
Déjà que t'avais mis des index sans t'en servir ... re LOL
Elle ressemble à quoi visuellement ta page ?
la première fois qu'on accède à ta page tu ne fais pas de requête je suppose , où alors tu utilises des paramètres par défaut puisque "listecellule" n'est pas encore défini.
J'avoue que j'ai plus trop d'idée ...
Poste le code on ne sais jamais à moins que tout ca ne soit en ligne ?
Déjà que t'avais mis des index sans t'en servir ... re LOL
Elle ressemble à quoi visuellement ta page ?
la première fois qu'on accède à ta page tu ne fais pas de requête je suppose , où alors tu utilises des paramètres par défaut puisque "listecellule" n'est pas encore défini.
J'avoue que j'ai plus trop d'idée ...
Poste le code on ne sais jamais à moins que tout ca ne soit en ligne ?
Ok. Ca m'affiche bien le Nom.
Mais mon problème c'est pour récupérer l'identifiant dans une requête SQL.
Après ma boucle je fais la requête suivante :
quand je fais un echo "$sql" il m'affiche :
Et il est la le problème : avec la variable $_POST['listecellule'] je récupère le contenu de la liste et pas moyen de séléctionner l'identifiant.
Ensuite j'ai essayé de rajouter un attibut name, comme ceci :
et j'ai fait le requête suivant :
Quand je fais un echo de cette requête, il m'affiche ceci :
Alors comment récupérer cet identifiant ?
Merci d'avance