IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Remplir une liste déroulante à partir d'une autre liste dynamique


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de Sekigawa
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 432
    Par défaut Remplir une liste déroulante à partir d'une autre liste dynamique
    Salut,

    Voilà je vois pas du tout comment faire,

    J'ai une liste déroulante qui contient des catégories de produits et une autre qui doit contenir les produits correspondant à la catégorie choisie.

    Je voudrai que quand l'utilisateur fait son choix dans la premiere liste, la seconde soit remplie dynamiquement. Le soucie c'est que je voudrai que ça se fasse sans rafraichissement en dynamique quoi lol

    Merci pour vos réponses !!

  2. #2
    Membre confirmé Avatar de islyoung2
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations forums :
    Inscription : Juin 2008
    Messages : 236
    Par défaut
    Ahh mon pote je pense que tu dois faire un tour chez Mr AJAX pour remédier a ton PB.

  3. #3
    Membre éclairé Avatar de Sekigawa
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 432
    Par défaut
    Un petit coup de main pour trouver ça ^^

    Je cherche depuis un moment ans un résultat !! PLEASE !!

  4. #4
    Membre confirmé Avatar de islyoung2
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations forums :
    Inscription : Juin 2008
    Messages : 236
    Par défaut
    Ok pas de pb, j'ai un script simple qui fais exactement ce que tu cherche chez moi, si tu veux je te l'envoie ce soir.

  5. #5
    Membre éclairé Avatar de Sekigawa
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 432
    Par défaut
    Oua ce serait enorme

    Je te laisse mon mail par MP !!

    Je te remercie vraiment !!!!

  6. #6
    Membre confirmé Avatar de islyoung2
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations forums :
    Inscription : Juin 2008
    Messages : 236
    Par défaut
    No problrmo à ce soir alors

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 386
    Par défaut
    salut islyoung2

    je cherche la même chose;

    peux tu mettre ton script pout tous où c est trop demandé?

    en tout cas merci

    steph

  8. #8
    Membre confirmé Avatar de islyoung2
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations forums :
    Inscription : Juin 2008
    Messages : 236
    Par défaut
    Nan c pas du tout trop demandée;
    mai en faite le script est sur deux fichier .php un fichier .javascript + un fichier text pour la structure de la base de donnée, mais ne t'en fais pas je vais le mettre.

  9. #9
    Membre confirmé Avatar de islyoung2
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations forums :
    Inscription : Juin 2008
    Messages : 236
    Par défaut
    voila comme promis je vais mettre le script et l'expliquer aussi :
    - c'est un petit script qui illustre l'utilité de la puissance de la technologie AJAX (bon un ptit avant gout de la puissance lol).
    - je vai commencer par la base de donnée :
    j'ai deux tables : auteur, comme son nom l'indique contient un ensemble d'auteurs de boukin. la deuxième table contient tous les ouvrage et pour chaque livre il ya un champ auteur pour référencer l'auteur du livre.
    - dans le fichier index il ya deux select un pour les auteur et l'autre pour les ouvrage, mais celui des ouvrage est vide, il faux sélectionner l'auteur afin d'afficher rien que les ouvrage spécifique à cette ouvrage. voila c tous :

    fichier : index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    <!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>Livres et auteurs</title>
    </head>
     
    <body>
    <script language="javascript" src="Auteur.js"></script>
    <?php
    	function AuthorList()
    	{
    		mysql_connect("localhost","root","") or die(mysql_error());
    		mysql_select_db("tpajax") or die(mysql_error());
    		$query1 = mysql_query("SELECT * FROM Auteur ORDER BY 'nom'") or die(mysql_error());
    		while($result = mysql_fetch_array($query1))
    		{
    			echo "<option value=".$result['id'].">".$result['nom']."</option>";
    		}
    		mysql_close();
    	}
    ?>
    <fieldset style="width: 500px">
    	<legend>Liste liées</legend>
    	Auteur :<select id="slcAuteur" onchange="Ajax();">
      		<option value="-1">Aucun</option>
      			<?php AuthorList() ?>
    		</select>
    	<div id="slcLivre" style="display:inline" >
    		Livre :<select  name="slcLivre">
    		  <option value="-1">Choisir un auteur</option>
    		</select>
    	</div>
    </fieldset>
    <script language="javascript">
    Ajax();
    //document.getElementById('slcLivre').innerHTML="<select name ='slcLivre'><option value='-1'>Choisir un  auteur</option></select>"
    </script>
    </body>
    </html>
    fichier BookFind.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    <?php
    	//echo "execution bookfind.php";
     
    	$idauteur = $_GET['Auteur'];
    	if($idauteur !=-1)
    	{
     
    		mysql_connect("localhost","root","") or die(mysql_error());
    		mysql_select_db("tpajax") or die(mysql_error());
    		$query1 = mysql_query("SELECT * FROM livre WHERE idAuteur = '$idauteur'")or die(mysql_error());
    		echo "Livre : <select  name='slcLivre'>";
    		while($result = mysql_fetch_array($query1))
    		{
    			echo "<option value=".$result['id'].">".$result['titre']."</option>";
    		}
    		echo "</select> ";
    	}
    	else
    	echo "Livre : <select name ='slcLivre'><option value='-1'>Choisir un auteur</option></select>";
     
    ?>
    fichier Auteur.js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    function initAjax()
    	{
    		var xmlHttp;
    		try
    		{
    			// Firefox, Opera 8.0+, Safari
    			xmlHttp=new XMLHttpRequest();
    		}
    		catch (e)
    		{
    			// Internet Explorer
    			try
    			{
    				xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    			}
    			catch (e)
    			{
    				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    			}
    		}
    		return xmlHttp ;
    	}
    function Ajax()
    {
    		var xmlHttp2=initAjax()
    		var idauteur='-1';
    		//window.alert("execution ajax");
    		xmlHttp2.onreadystatechange=function()
    		{
    			//window.alert("execution onreadystatechange");
    			if(xmlHttp2.readyState == 4 || xmlHttp2.readyState == 0)
    			{
    				//window.alert("execution onreadystatechange");
    				//				window.alert(" avant:"+idauteur);
    				document.getElementById('slcLivre').innerHTML = xmlHttp2.responseText;
    			}
    		}
    			sel = document.getElementById('slcAuteur');
    			//window.alert(sel.options[sel.selectedIndex].value);
    			idauteur = sel.options[sel.selectedIndex].value;
    			//window.alert("apres:"+idauteur);
    			xmlHttp2.open("GET","BookFind.php?Auteur="+idauteur,true);
    			//window.alert("apres1:"+idauteur);
    			xmlHttp2.send(null);
    }
    Nom de la BDD : tpajax
    Structure de la BDD :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    CREATE TABLE `auteur` (
    `id` tinyint(4) NOT NULL auto_increment,
    `nom` varchar(50) NOT NULL,
    PRIMARY KEY (`id`)
    );
     
    insert into `auteur` values
    (1,'Clive Cussler'),
    (2,'Harlan Coben'),
     
    (3,'Franck Herbert'),
    (4,'Pierre Bordages');
     
    CREATE TABLE `livre` (
    `id` tinyint(4) NOT NULL auto_increment,
    `titre` varchar(50) NOT NULL,
    `idAuteur` tinyint(4) default NULL,
    PRIMARY KEY (`id`)
    ) ;
     
    insert into `livre` values
    (1,'Odyssee',1),
    (2,'Sahara',1),
    (3,'Dragon',1),
    (4,'Une chance de trop',2),
    (5,'Ne le dis a personne',2),
    (6,'Disparu à jamais',2),
    (7,'Dune',3),
    (8,'La barriere de santaroga',3),
    (9,'Les guerriers du silence',4),
    (10,'La citadelle hyponeros',4),
    (11,'Terra mater',4);

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 386
    Par défaut
    super je vais regarder ça

    en tout cas, on peut dire que tu es rapide à la réponse.

    merci beaucoup

    a +

    steph

  11. #11
    Membre confirmé Avatar de islyoung2
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations forums :
    Inscription : Juin 2008
    Messages : 236
    Par défaut
    EEHHHHH ouai comme koi il reste tjr dans ce bas monde ceux qui aiment aider les autres.

  12. #12
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Et puis c'est mieux de faire partager (après tout c'est à ça que sert un forum...)

    Sekigawa, ton problème est résolu ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 386
    Par défaut
    Salut Islyoung2

    j ai testé ton code

    j utilise Dreamweaver

    j ai donc créé 3 fichiers( index.php,bookfind.php et Auteur.js) et la base de données tpajax

    mais quand j execute index.php j ai bien les 2 listes , la liste auteur s'alimente bien avec les auteurs mais que dalle dans la liste livre.

    ai je fait une mauvaise mani, j ai copié texto ton code.

    merci de ton aide


    steph

  14. #14
    Membre confirmé Avatar de islyoung2
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations forums :
    Inscription : Juin 2008
    Messages : 236
    Par défaut
    Mais c'est sa le but du script, c'est que tu ne peut pas choisir un ouvrage avant d'avoir choisi un auteur. et après avoir choisi l'auteur il apparait rien que les ouvrage de cette auteur, tout sa sans avoir besoin à recharger la page.
    A moins que la liste des livre ne change pas même si tu choisi un auteur.

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 386
    Par défaut
    salut

    bin justement il ne se passe rien. j ai maté sur phpmyadmin, j ai bien les 2 tables et la jointure,ok

    je clique sur la liste auteur, j ai les noms et quand je clique sur l autre, il me met simplement choisir un auteur mais rien d'autre.

    ?

  16. #16
    Membre confirmé Avatar de islyoung2
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations forums :
    Inscription : Juin 2008
    Messages : 236
    Par défaut
    Citation Envoyé par Stéph utilisateur d'acces Voir le message
    salut

    bin justement il ne se passe rien. j ai maté sur phpmyadmin, j ai bien les 2 tables et la jointure,ok

    je clique sur la liste auteur, j ai les noms et quand je clique sur l autre, il me met simplement choisir un auteur mais rien d'autre.
    ?
    Désolé ça marche très bien chez moi avec les deux explorateurs (IE,FF), et même Sekigawa l'a essayé chez lui et ça a marché, vérifie si javascript n'est pas bloqué par ton explorateur.

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 386
    Par défaut
    j utilise FF mais il ne me dit rien.

    Comment je peux savoir s il bloque le js?

    c est bizarre quand même ce truc

    merci

  18. #18
    Membre confirmé Avatar de islyoung2
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations forums :
    Inscription : Juin 2008
    Messages : 236
    Par défaut
    Il existe un module complémentaire pour FF il s'appelle Firebug, c'est module pour le développement web, essaye de l'installer et si il y a erreur javascript il va te l'afficher.

  19. #19
    Membre confirmé Avatar de islyoung2
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations forums :
    Inscription : Juin 2008
    Messages : 236
    Par défaut
    En fin peut être que je me suis trompé dans la copie des script voici les trois fichiers, j'espère que ça marchera.
    Fichiers attachés Fichiers attachés

  20. #20
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 386
    Par défaut
    super

    ça fonctionne avec ton archive.

    merci beaucoup

    a bientot

    steph

Discussions similaires

  1. [XL-2007] Liste déroulante conditionnée suivant d'autres listes déroulantes
    Par stueur666 dans le forum Excel
    Réponses: 6
    Dernier message: 01/10/2013, 10h09
  2. liste déroulante à partir d'une autre liste
    Par maffi dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 29/10/2011, 14h12
  3. Réponses: 6
    Dernier message: 11/02/2009, 17h17
  4. remplissage d'une liste déroulante à partir d'une autre liste
    Par monphp dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/05/2007, 12h28
  5. Réponses: 4
    Dernier message: 22/09/2006, 08h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo