Liste déroulante php
mich8569
Messages postés
68
Date d'inscription
Statut
Membre
Dernière intervention
-
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'explique mon problème :
J'ai un formulaire avec des champs de texte et une liste déroulante
J'ai une liste déroulant remplie à l'aide d'une base de donnée et je voudrais que lorsqu'on choisit un element dans la liste, les champs de texte se mettent tout seul a jour en fonction des elements de la base de données ?
Est-ce que vous arrivez a suivre lol?
En fait je voudrais faire ca pour mettre facilement à jour ma base de données a l'aide d'un formulaire et donc de choisir un element dans une liste et les autres champs s'affichent tout seul pour qu'on puisse savoir ce que contient la base de données
Est-ce que c'est possible au moins?
Si oui est-ce que vous savez comment on fait?
Merci d'avance
J'explique mon problème :
J'ai un formulaire avec des champs de texte et une liste déroulante
J'ai une liste déroulant remplie à l'aide d'une base de donnée et je voudrais que lorsqu'on choisit un element dans la liste, les champs de texte se mettent tout seul a jour en fonction des elements de la base de données ?
Est-ce que vous arrivez a suivre lol?
En fait je voudrais faire ca pour mettre facilement à jour ma base de données a l'aide d'un formulaire et donc de choisir un element dans une liste et les autres champs s'affichent tout seul pour qu'on puisse savoir ce que contient la base de données
Est-ce que c'est possible au moins?
Si oui est-ce que vous savez comment on fait?
Merci d'avance
A voir également:
- Liste déroulante html php
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste déroulante google sheet - Accueil - Guide bureautique
- Editeur html - Télécharger - HTML
- Liste code ascii - Guide
12 réponses
Merci Alain pour ta réponse rapide !
Effectivement je cherchais sur le forum quand j'ai reçu ta réponse.
Je me posais la question depuis le début si j'etais obligé de passer par une base de données...ce que je n'ai jamais fait pour l'instant.
Je me disais que je trouverais peut-etre des scripts avec les tableaux en javascript (array) qui pourrait suffire, je n'ai quand même pas deux cents données.
Mais si je dois y passer eh bien je vais me plonger dans les bdd et ce fameux Ajax...
tu me confirmes donc que pour plus de 2 listes déroulantes liées il faut passer par les bases de données?
Pour le select multiple, je ne pense pas que ça concerne mon probleme : un choix dans une liste en provoque un autre dans une autre qui en provoque un autre dans une troisieme. Pour résumer mon objectif : on choisit un jour, on choisit le matin ou l'aprem de ce jour et l'activité de cette demi-journée correspondante. Evidemment ça serait trop simple que tous les matins aient les memes activités tous les jours.... :-(
Merci en tout cas !
fab
Effectivement je cherchais sur le forum quand j'ai reçu ta réponse.
Je me posais la question depuis le début si j'etais obligé de passer par une base de données...ce que je n'ai jamais fait pour l'instant.
Je me disais que je trouverais peut-etre des scripts avec les tableaux en javascript (array) qui pourrait suffire, je n'ai quand même pas deux cents données.
Mais si je dois y passer eh bien je vais me plonger dans les bdd et ce fameux Ajax...
tu me confirmes donc que pour plus de 2 listes déroulantes liées il faut passer par les bases de données?
Pour le select multiple, je ne pense pas que ça concerne mon probleme : un choix dans une liste en provoque un autre dans une autre qui en provoque un autre dans une troisieme. Pour résumer mon objectif : on choisit un jour, on choisit le matin ou l'aprem de ce jour et l'activité de cette demi-journée correspondante. Evidemment ça serait trop simple que tous les matins aient les memes activités tous les jours.... :-(
Merci en tout cas !
fab
salut
oui, c'est possible
lors de la sélection d'un élément dans ta liste, un evenement est déclenché.
De mémoire, cet evenement est "onchange" pour le javascript.
A cet evenement, tu crees une fonction qui te permet de recuperer par une requete les lignes dont tu as besoin en passant comme condition a ta requete l'element selectionne dans ta liste...
et voila, tu n'as pmlus qu'a remplir tes champs dans ta page.
oui, c'est possible
lors de la sélection d'un élément dans ta liste, un evenement est déclenché.
De mémoire, cet evenement est "onchange" pour le javascript.
A cet evenement, tu crees une fonction qui te permet de recuperer par une requete les lignes dont tu as besoin en passant comme condition a ta requete l'element selectionne dans ta liste...
et voila, tu n'as pmlus qu'a remplir tes champs dans ta page.
onChange = javascript et fais appel à une fonction php qui s'occupe de renvoyer l'élément à mettre à jour dans ton text (via une requete sql).
En gros tu dois faire une fonction javascript qui doit permettre de changer la valeur du champ de texte. La valeur qui sera mise sera "calculée" par une petite fonction php ou autre qui fait une requete sur la base en fonction de ce qui a été selectionné. Cette fonction retourne le résultat trouvé dans la base, dans la fonction javascript qui alors met à jours la valeur du champ texte.
Ta fonction javascript est appellé dans ton formulaire via la syntaxe suivante :
<SELECT NAME.... onChange=\"javascript::mafonctionjavascript();\" ...>
Ta fonction javascript est appellé dans ton formulaire via la syntaxe suivante :
<SELECT NAME.... onChange=\"javascript::mafonctionjavascript();\" ...>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour,
je suis novice et je voudrais utilisé un cet évenement pour mettre a jour ma page.
Mais je n'ai aucune idée de la syntaxe:
-pour detecter l'evenement
-ecrire une fonction javascript associé
Auriez vous un petit exemple svp?
merci d'avance
je suis novice et je voudrais utilisé un cet évenement pour mettre a jour ma page.
Mais je n'ai aucune idée de la syntaxe:
-pour detecter l'evenement
-ecrire une fonction javascript associé
Auriez vous un petit exemple svp?
merci d'avance
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans nom</title>
<script language="javascript">
<!--fonction qui remplisse le deuxieme combobox-->
var listeprojet = Array();
listeprojet[0] = Array("Application", "App_1");
listeprojet[1] = Array("Application", "App_1");
listeprojet[2] = Array("Site Web", "Site web 1");
listeprojet[3] = Array("Site Web", "site web 2");
listeprojet[4] = Array("Conception", "Concep 1");
listeprojet[5] = Array("Conception", "Concep 2");
listeprojet[6] = Array("Conception", "Concep 3");
listeprojet[7] = Array("Conception", "Concep 4");
function fillCombo(){
var combo = document.getElementById('select');
var selected_value = combo.value;
combo_2 = document.getElementById('projet');
//effacer les elements dans le combo 2
combo_2.options.length = 1;
//remplir le combo 2 avec les nouveaux elements
for(var i=0,j=1;i<listeprojet.length;i++){
if(listeprojet[i][0] == selected_value){
element = new Option(listeprojet[i][1], listeprojet[i][1]);
combo_2.options[j] = element;
j++;
}
}
}
</script>
</head>
<body>
<form name="frm" method="post" action="">
<table>
<tr>
<td>Type projet</td>
<td><select name="select" id="select" onchange="javascript:fillCombo()">
<option value="">--Type Projet--</option>
<option value="Application">Application</option>
<option value="Site Web">Site Web</option>
<option value="Conception">Conception</option>
</select></td>
</tr>
<tr>
<td>Type projet</td>
<td><select name="select" id="projet">
<option value="">--Choisir un projet--</option>
</select></td>
</tr>
</table>
</form>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans nom</title>
<script language="javascript">
<!--fonction qui remplisse le deuxieme combobox-->
var listeprojet = Array();
listeprojet[0] = Array("Application", "App_1");
listeprojet[1] = Array("Application", "App_1");
listeprojet[2] = Array("Site Web", "Site web 1");
listeprojet[3] = Array("Site Web", "site web 2");
listeprojet[4] = Array("Conception", "Concep 1");
listeprojet[5] = Array("Conception", "Concep 2");
listeprojet[6] = Array("Conception", "Concep 3");
listeprojet[7] = Array("Conception", "Concep 4");
function fillCombo(){
var combo = document.getElementById('select');
var selected_value = combo.value;
combo_2 = document.getElementById('projet');
//effacer les elements dans le combo 2
combo_2.options.length = 1;
//remplir le combo 2 avec les nouveaux elements
for(var i=0,j=1;i<listeprojet.length;i++){
if(listeprojet[i][0] == selected_value){
element = new Option(listeprojet[i][1], listeprojet[i][1]);
combo_2.options[j] = element;
j++;
}
}
}
</script>
</head>
<body>
<form name="frm" method="post" action="">
<table>
<tr>
<td>Type projet</td>
<td><select name="select" id="select" onchange="javascript:fillCombo()">
<option value="">--Type Projet--</option>
<option value="Application">Application</option>
<option value="Site Web">Site Web</option>
<option value="Conception">Conception</option>
</select></td>
</tr>
<tr>
<td>Type projet</td>
<td><select name="select" id="projet">
<option value="">--Choisir un projet--</option>
</select></td>
</tr>
</table>
</form>
</body>
</html>
moi j'ai utiliser la syntaxe suivante en php
echo 'document.getElementById("ma_liste").options['.$k.'].className = "mon_style";';
Merci
echo 'document.getElementById("ma_liste").options['.$k.'].className = "mon_style";';
Merci
Merci i_lham, ça m'est tres utile ton code, mais j'aurai un problème supplémentaire : comment faire si on veut faire une troisieme liste déroulante dont les options dépendent de la deuxième combo box? J'ai essayé d'adapter ton code mais je ne suis pas très doué en javascript hélas...
Donc par exemple si Site web1 entraine 3 choix possibles dans la liste suivante.
C'est peut-etre simple mais je sèche lamentablement.
Une question subsidiaire : je récupère le résultat de ton code avec un script php, OK, mais y a t-il un moyen de récupérer l'ensemble des choix plutot que juste le dernier? "site web - site web2" plutot que juste "site web2" ?
Sinon je peux contourner le probleme mais si quelqu'un sait faire je suis preneur :)
fab
Donc par exemple si Site web1 entraine 3 choix possibles dans la liste suivante.
C'est peut-etre simple mais je sèche lamentablement.
Une question subsidiaire : je récupère le résultat de ton code avec un script php, OK, mais y a t-il un moyen de récupérer l'ensemble des choix plutot que juste le dernier? "site web - site web2" plutot que juste "site web2" ?
Sinon je peux contourner le probleme mais si quelqu'un sait faire je suis preneur :)
fab
il faut utiliser AJAX, fais une recherche sur ce site "listes déroulantes liées"
j'ai déjà aidé à ce sujet
si tu veux récupérer plusieurs choix d'une liste il faut mettre ta liste en multiple
par contre le on change ne doit pas marcher (à tester ?)
j'ai déjà aidé à ce sujet
si tu veux récupérer plusieurs choix d'une liste il faut mettre ta liste en multiple
par contre le on change ne doit pas marcher (à tester ?)
le principe des listes déroulantes liees:
le choix dans le 1 (ex departements) provoque l'affichage de la 2 (ex les villes du département)
le choix dans la 2 (une ville) provoque l'affichage de la 3 (les musées ?)
tout dépend de la taille des différentes listes
si pas trop importantes tu peux faire des array javascript mais si évolution dans le temps c'est un peu lourd
si plus important le mieux c'est la BDD et AJAX
le principe de AJAX
sur le onChange lsite1 on appelle la fonction AJAX/javascript
cette dernière vient lire le choix liste1 et appelle un script php sur le serveur en lui passant ce choix en argument
le script php va lire dans la BDD ce qu'il faut afficher dans la liste2 en fonction du choix liste1
la réponse de php reçu par AJAX (liste2) est affichée dans la page et tout ceci en "arrère plan" donc sans recharger la page
idem pour liste2 ==> liste3
peut être connais tu www.siteduzero.com pour lecture BDD et affichage dans une page
le choix dans le 1 (ex departements) provoque l'affichage de la 2 (ex les villes du département)
le choix dans la 2 (une ville) provoque l'affichage de la 3 (les musées ?)
tout dépend de la taille des différentes listes
si pas trop importantes tu peux faire des array javascript mais si évolution dans le temps c'est un peu lourd
si plus important le mieux c'est la BDD et AJAX
le principe de AJAX
sur le onChange lsite1 on appelle la fonction AJAX/javascript
cette dernière vient lire le choix liste1 et appelle un script php sur le serveur en lui passant ce choix en argument
le script php va lire dans la BDD ce qu'il faut afficher dans la liste2 en fonction du choix liste1
la réponse de php reçu par AJAX (liste2) est affichée dans la page et tout ceci en "arrère plan" donc sans recharger la page
idem pour liste2 ==> liste3
peut être connais tu www.siteduzero.com pour lecture BDD et affichage dans une page
Explication limpide, merci, je serai moins bete à la fin de la journée en ce qui concerne Ajax :)
Ca a l'air bien puissant et pratique ce truc. J'ai cru comprendre qu'en ajoutant de librairies tu pouvais même faire du drag and drop, etc...
J'ai eu une initiation aux bdd il y a quelques années, donc je m'y remettrais assez vite si j'y suis obligé, surtout que mon problème n'est pas bien compliqué je pense. Et oui je connais ce site :)
J'ai eu une idée également en cherchant à simplifier mes requetes : je vais essayer d'inverser la demande, partir de l'activité recherchée et en déduire les sessions correspondantes dans la semaine: ça ne me ferait que deux listes et ça je sais faire :) peut-etre moins élégant et plus lourd mais si ça marche, plus rapide vu que mon script est déja fait.
Pour les select multiple j'ai peut-etre lu un peu vite ta réponse : en fait c'est quand on veut récupérer les infos des 2 listes que tu me parlais de cet attribut je pense. Je vais approfondir ça, parce que je dois récupérer l'activité et la session choisie...
Merci Alain!
fab
Ca a l'air bien puissant et pratique ce truc. J'ai cru comprendre qu'en ajoutant de librairies tu pouvais même faire du drag and drop, etc...
J'ai eu une initiation aux bdd il y a quelques années, donc je m'y remettrais assez vite si j'y suis obligé, surtout que mon problème n'est pas bien compliqué je pense. Et oui je connais ce site :)
J'ai eu une idée également en cherchant à simplifier mes requetes : je vais essayer d'inverser la demande, partir de l'activité recherchée et en déduire les sessions correspondantes dans la semaine: ça ne me ferait que deux listes et ça je sais faire :) peut-etre moins élégant et plus lourd mais si ça marche, plus rapide vu que mon script est déja fait.
Pour les select multiple j'ai peut-etre lu un peu vite ta réponse : en fait c'est quand on veut récupérer les infos des 2 listes que tu me parlais de cet attribut je pense. Je vais approfondir ça, parce que je dois récupérer l'activité et la session choisie...
Merci Alain!
fab