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 :

Extraire les données à partir d'une liste déroulante dans une autre liste deroulante [Fait] [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Points : 76
    Points
    76
    Par défaut Extraire les données à partir d'une liste déroulante dans une autre liste deroulante
    bjour,
    SVP, je veux utiliser 3 lisltes deroulante en php
    J'ai plusieurs WILAYA, chaque WILAYA contient plusieurs DAIRA et chaque DAIRA contient plusieurs communes.

    ce que je veux c'est:
    quand je choisi une Wilaya de la liste déroulante de WILAYA elle me donne automatiquement la liste des DAIRA de cette Wilaya dans la 2eme liste déroulante (celle de DAIRA)
    et
    quand je choisi une DAIRA de la liste déroulante de DAIRA elle me donne automatiquement la liste des communes de cette DAIRA dans la 3eme liste déroulante (celle de commune).

    merci

  2. #2
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Bonjour,
    tu pourrais t'inspirer de ceci : Listes liées avec AJAX

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Points : 76
    Points
    76
    Par défaut
    bonjour
    Merci
    j'ai visité ctte page mais c'est un peu compliqué pour moi, je suis débuttante en php.

  4. #4
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Essaye toujours et expose les problèmes rencontrés ...
    Tu as juste à suivre le tuto et remplacer par tes variables.

  5. #5
    Membre régulier
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Points : 76
    Points
    76
    Par défaut
    Bonjour,
    j'ai essayer de comprendre le code , mais cela est pour 2 listes mon travail est de3 liste liées.
    par exemple auteur,livre, année d'édition
    mon travail c'est:wlaya,daira,commune

  6. #6
    Membre régulier
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Points : 76
    Points
    76
    Par défaut
    bonjour et merci de m'avoir repondre
    j'ai fait ce code d'aprés ce lien que vous m'avez donné mais ça ne marche pas
    http://siddh.developpez.com/articles/ajax/#LIV-A

    il ne marche pas:
    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
     
    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);
    le fichier auteur.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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
     
    <html>
    	<head>
    		<title>Tutoriel Ajax (XHTML + JavaScript + XML)</title>
    		<script type='text/javascript'>
     
    			function getXhr(){
                                    var xhr = null; 
    				if(window.XMLHttpRequest) // Firefox et autres
    				   xhr = new XMLHttpRequest(); 
    				else if(window.ActiveXObject){ // Internet Explorer 
    				   try {
    			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			            } catch (e) {
    			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			            }
    				}
    				else { // XMLHttpRequest non supporté par le navigateur 
    				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    				   xhr = false; 
    				} 
                                    return xhr;
    			}
     
    			/**
    			* Méthode qui sera appelée sur le click du bouton
    			*/
    			function go(){
    				var xhr = getXhr();
    				// On défini ce qu'on va faire quand on aura la réponse
    				xhr.onreadystatechange = function(){
    					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    					if(xhr.readyState == 4 && xhr.status == 200){
    						leselect = xhr.responseText;
    						// On se sert de innerHTML pour rajouter les options a la liste
    						document.getElementById('livre').innerHTML = leselect;
    					}
    				}
     
    				// Ici on va voir comment faire du post
    				xhr.open("POST","ajaxLivre.php",true);
    				// ne pas oublier ça pour le post
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				// ne pas oublier de poster les arguments
    				// ici, l'id de l'auteur
    				sel = document.getElementById('auteur');
    				idauteur = sel.options[sel.selectedIndex].value;
    				xhr.send("idAuteur="+idauteur);
    			}
    		</script>
    	</head>
    	<body>
    		<form>
    			<fieldset style="width: 500px">
    				<legend>Liste liées</legend>
    				<label>Auteurs</label>
    				<select name='auteur' id='auteur' onchange='go()'>
    					<option value='-1'>Aucun</option>
    					<?
    						mysql_connect("localhost","root","root");
    						mysql_select_db("test");
    						$res = mysql_query("SELECT * FROM auteur ORDER BY nom");
    						while($row = mysql_fetch_assoc($res)){
    							echo "<option value='".$row["id"]."'>".$row["nom"]."</option>";
    						}
    					?>
    				</select>
    				<label>Livres</label>
    				<div id='livre' style='display:inline'>
    				<select name='livre'>
    					<option value='-1'>Choisir un auteur</option>
    				</select>
    				</div>
    			</fieldset>
    		</form>
    	</body>
    </html>
    le fichier Ajaxlivre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
    	echo "<select name='livre'>";
    	if(isset($_POST["idAuteur"])){
    		mysql_connect("localhost","root","root");
    		mysql_select_db("test");
    		$res = mysql_query("SELECT id,titre FROM livre 
    			WHERE idAuteur=".$_POST["idAuteur"]." ORDER BY titre");
    		while($row = mysql_fetch_assoc($res)){
    			echo "<option value='".$row["id"]."'>".$row["titre"]."</option>";
    		}
    	}
    	echo "</select>";
    ?>
    ou est le probleme ici

  7. #7
    Membre actif Avatar de Momodedf
    Inscrit en
    Juillet 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Juillet 2007
    Messages : 246
    Points : 221
    Points
    221
    Par défaut
    Est-ce que tu peux ouvrir la console d'erreur de ton navigateur voir si le code JavaScript a généré une erreur ?

    Sous firefox c'est Ctrl+Maj+J, sous IE je sais pas :-/.

    Attention très souvent la console est floodé de notices de tout les sites où tu es passé, donc tu risque de devoir la vider avant de tester ton code.

  8. #8
    Membre régulier
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Points : 76
    Points
    76
    Par défaut
    bonjour,
    il n'affiche aucune erreur mais les listes sont vides (plutôt la première liste, les deux autres dépendant d'elle) je ne sais sais pas s'il est obligatoire d'utiliser ajax ou si on peut faire ces listes sans ajax (plus simple plus facile ?).

  9. #9
    Membre actif Avatar de Momodedf
    Inscrit en
    Juillet 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Juillet 2007
    Messages : 246
    Points : 221
    Points
    221
    Par défaut
    En fait ce qu'il faut bien que tu comprenne c'est que le code JavaScript est interprété coté client. Ce qui veut dire que le script est lu par le navigateur de l'utilisateur (donc sur son ordinateur une fois qu'il a reçu la page).
    Alors que PHP de son coté est interprété coté serveur. C'est ton serveur PHP qui interprète le code et en fonction de celui-ci va générer un document HTML (dans ton cas) et l'envoyer à l'utilisateur.

    Ce qui veut dire que depuis JavaScript tu ne peux pas accéder à la base de donnée ni influer sur le code PHP.
    Pour ça on utilise AJAX qui permet d'appeler une page PHP depuis un script JavaScript et d'en récupérer le contenu généré.

    Pour ce qui est de ton code j'ai du mal à voir ce qui pose problème, déjà vérifie que Ajaxlivre.php affiche bien le code désiré quand tu l'appel "normalement".
    Ensuite que document.getElementById('livre') va bien chercher ta div, mais bon si c'était pas le cas je pense qu'il te générerait une erreur.

  10. #10
    Membre régulier
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Points : 76
    Points
    76
    Par défaut
    merci bcp pour cette explication, enfin j'ai trouvé la solution

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 33
    Dernier message: 27/09/2012, 11h46
  2. Réponses: 6
    Dernier message: 25/10/2009, 11h56
  3. [Talend open studio] Comment extraire les données à partir d'Oracle ?
    Par aymengomez dans le forum Développement de jobs
    Réponses: 19
    Dernier message: 15/05/2009, 12h09
  4. Réponses: 3
    Dernier message: 24/11/2008, 14h09
  5. Réponses: 11
    Dernier message: 26/04/2007, 10h40

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