Requete liste déroulante
Résolu
chedar
Messages postés
99
Date d'inscription
Statut
Membre
Dernière intervention
-
tryan44 Messages postés 1288 Date d'inscription Statut Membre Dernière intervention -
tryan44 Messages postés 1288 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai une liste déroulante qui se remplit automatiquement avec les valeurs de ma table.
En dessous, un champ text qui doit se remplir en fonction du choix fait dans la liste.
Je n'y arrive pas et ne vois pas comment faire, pouvez-vous m'aider svp ?
Merci
J'ai une liste déroulante qui se remplit automatiquement avec les valeurs de ma table.
En dessous, un champ text qui doit se remplir en fonction du choix fait dans la liste.
<td><!-- boucle parcourant la liste des rues --> <?php $Requete = "select nom from rattachement_secteur where titre != ''"; $resultat = mysql_query($Requete) or die ("Erreur d'éxécution" ); ?> <select size="1" name="adressemodif" id="adressemodif" onchange="ModifRue();"> <option value="">Adresse</option><?php while ($ligne = mysql_fetch_row($resultat)) { $i = 0; ?> <!-- Remplissage de la liste déroulante avec les communes --> <option value="<?php echo $ligne[$i]; ?>"><?php echo $ligne[$i] ?></option> <?php $i++; } ?> </select> </td> </tr> <?php echo "<tr><td>Titre :</td><td><input type=\"text\" name=\"titremodif\" value='".$ligne[$i]."'></td></tr>" ;?> <tr>
Je n'y arrive pas et ne vois pas comment faire, pouvez-vous m'aider svp ?
Merci
A voir également:
- Requete liste déroulante
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste déroulante google sheet - Accueil - Guide bureautique
- Liste code ascii - Guide
- Site dangereux liste - Guide
24 réponses
Bonjour
qu'est ce qui ne fonctionne et qu'est ce qui ne fonctionne pas ?
Ton select fonctionne mais tu n'arrives pas à faire afficher dans ton input la valeur de ton select, c'est ça ?
Si c'est ça, alors c'est normal, ça ne peut pas fonctionner comme ça en php, il faudrait un rechargement de la page. Il faut que tu passes par du javascript pour faire ça
tu peux regarder cet exemple en jquery :
https://api.jquery.com/val/
le 1er exemple correspond bien à ce que tu souhaites.
qu'est ce qui ne fonctionne et qu'est ce qui ne fonctionne pas ?
Ton select fonctionne mais tu n'arrives pas à faire afficher dans ton input la valeur de ton select, c'est ça ?
Si c'est ça, alors c'est normal, ça ne peut pas fonctionner comme ça en php, il faudrait un rechargement de la page. Il faut que tu passes par du javascript pour faire ça
tu peux regarder cet exemple en jquery :
https://api.jquery.com/val/
le 1er exemple correspond bien à ce que tu souhaites.
Ouais c'est exactement ça.
C'est bien ce que je pensais. Le probleme est que mon adresse est composée de 2 champs : titre (ex : allée des) et nom (ex :asturies).
La value de ma liste déroulante est la concaténation.
Mais une fois avoir récuperer cette valeur en ajax, je récupere "allée des asturies" en une seule valeur. Alors comment faire pour mettre "allée des" dans un champ et "asturies" dans l'autre ? :/
Merci de m'aider en tout cas ;)
C'est bien ce que je pensais. Le probleme est que mon adresse est composée de 2 champs : titre (ex : allée des) et nom (ex :asturies).
La value de ma liste déroulante est la concaténation.
Mais une fois avoir récuperer cette valeur en ajax, je récupere "allée des asturies" en une seule valeur. Alors comment faire pour mettre "allée des" dans un champ et "asturies" dans l'autre ? :/
Merci de m'aider en tout cas ;)
Comment faire pour savoir quelle partie correspond au titre et quelle partie correspond au nom ?
Allée des , asturies
Rue de la , motte brûlon
Le nombre de mot n'est pas toujours identique
Allée des , asturies
Rue de la , motte brûlon
Le nombre de mot n'est pas toujours identique
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
c'est des rues de Rennes ça non ? ^^
là en effet c'est plus compliqué...
Question : pourquoi as-tu concaténé tes 2 champs ?
là en effet c'est plus compliqué...
Question : pourquoi as-tu concaténé tes 2 champs ?
Ma rue et mon lycée en effet, tu es du coin ? ^^
Concaténation car l'affichage dans la liste s'affiche order by nom.
Sinon on aurait eu toutes les allée en premier, etc..
Bon je suis pas pres de réglé mon problème je pense, en plus pour toi ça va être difficile de m'aider vu que tu n'as pas tout sous les yeux :/
Concaténation car l'affichage dans la liste s'affiche order by nom.
Sinon on aurait eu toutes les allée en premier, etc..
Bon je suis pas pres de réglé mon problème je pense, en plus pour toi ça va être difficile de m'aider vu que tu n'as pas tout sous les yeux :/
j'habite pas loin de là, j'étais facteur sur H. Fréville un moment ^^
Ok, alors je pense qu'il faut oublier le champ où tu les as concaténer, faut procéder autrement.
Logiquement en mysql on peut concaténer des champs directement, il y a peut être moyen de faire un order by direct dessus.
essaye dans phpmyadmin un truc du genre :
SELECT CONCAT(rue1, " ", rue2) as nomderue FROM table ORDER BY nomderue
je pense que ça devrait marcher comme ça, du coup, tu supprimes carrément le champs ou tu avais concaténé ton nom de rue et tu utilises juste ton alias, comme si c'était un champ à part entière.
Ok, alors je pense qu'il faut oublier le champ où tu les as concaténer, faut procéder autrement.
Logiquement en mysql on peut concaténer des champs directement, il y a peut être moyen de faire un order by direct dessus.
essaye dans phpmyadmin un truc du genre :
SELECT CONCAT(rue1, " ", rue2) as nomderue FROM table ORDER BY nomderue
je pense que ça devrait marcher comme ça, du coup, tu supprimes carrément le champs ou tu avais concaténé ton nom de rue et tu utilises juste ton alias, comme si c'était un champ à part entière.
Pourquoi ne pas faire simple en ajoutant un séparateur dans votre concaténation du genre "|".
Sur votre "select" vous ajoutez une fonction :
Qui correspond à :
Puis vous récupérez les valeurs dans 2 champs "input":
<option value="<?php echo $ligne[$i]; ?>">|<?php echo $ligne[$i] ?></option>
Sur votre "select" vous ajoutez une fonction :
onchange="select(this.value);"
Qui correspond à :
function select(texte){ var tableau = texte.split('|'); document.getElementById('selection').value=tableau[0]; document.getElementById('selection1').value=tableau[1]; }
Puis vous récupérez les valeurs dans 2 champs "input":
<input name="selection" id="selection" type="text" value=""/> <input name="selection1" id="selection1" type="text" value=""/>
tryan44,
Merci pour ta réponse.
Je ne vois pas trop l'interet du "|" mais ta technique à l'air interessante?
La tu met comme value $ligne[$i] et tu affiche "|allée des asturies"
Merci pour ta réponse.
Je ne vois pas trop l'interet du "|" mais ta technique à l'air interessante?
La tu met comme value $ligne[$i] et tu affiche "|allée des asturies"
Ce qu'il te propose à mon avis, c'est de concaténer ta chaine avec un | au milieu pour ensuite pouvoir le séparer facilement via javascript
Si tu combines ça avec ce que je t'ai déjà conseillé tu devrais t'en sortir
Si tu combines ça avec ce que je t'ai déjà conseillé tu devrais t'en sortir
D'accord mais je le met au niveau du value alors, pas de l'affichage ?
Merci pour vos conseil en tout cas ;)
Saleté de stage.. Bon entre Rennais on peut s'aider :p
Merci pour vos conseil en tout cas ;)
Saleté de stage.. Bon entre Rennais on peut s'aider :p
Juste pour celui la, je met le " | " dans la value et je laisse l'affichage tel qu'il est actuellement
il faut le mettre au moment de ta requête, ou bien tu récupères les 2 champs de ta base que tu concatènes en php avec le |, peu importe
admin.php
js.js
Ca ne marche pas :/
<select size="1" name="adressemodif" id="adressemodif" onchange="select(this.value);">
<option value="<?php echo $ligne['titre']."|".$ligne['nom']?>"><?php echo $ligne[$i] ?></option>
<td><input style="width:375px" type="text" name="titremodif" id="titremodif" value=""></td> <td><input style="width:375px" type="text" name="nommodif" id="nommodif" value=""></td>
js.js
function select(texte){ var tableau = texte.split('|'); document.getElementById('titremodif').value=tableau[0]; document.getElementById('nommodif').value=tableau[1]; }
Ca ne marche pas :/