RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Srv: irc.moteurprog.com
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 AutoCompletion sur deux listes liées

Forum : AJAX
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ AJAX

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET NON RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGE : [1]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM AJAX

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
linkin_pc
Admin Projet
Superviseur :
- Méthodologie.
Modérateur :
- Flex
Chef de projet(s) :
- Time Counter
- Time Counter Ad.

Avatar de linkin_pc
Inscrit : 06/10/2006
Messages : 318
Message
#142450
Posté le 07/09/07 à 15:34
Salut La comm et bonne fetes.
je suis en train de rediger un formulaire php et voila. j'aimerais que le contenus d'une zone de liste soit dependant de celui de la liste qui la precède. Le tout doit etre fait en auto completion c'est à dire que l'utilisateur doit avoir la liste des enregistrement de la base de données au fur et à mesure qu'il saisit la texte.

Seulement voila. j'arrive à faire la pemiere liste. okay parfait ya pas de probleme. Mais au niveau de la deuxieme liste je n'arrive pas à avoir la liste au fur et à mesure du texte saisi.

Voici le code de mon formulaire.php


<?php // on inclut la connexion mysql_connect('localhost', 'root', ''); mysql_select_db('soa'); if(isset($_POST['faculte'])){ header('Content-type: text/html; charset=iso-8859-1'); // on fait la requête $sql = "SELECT `code_faculte`, `libelle_faculte` FROM `faculte` WHERE `libelle_faculte` LIKE '".$_POST['faculte']."%'"; $req = mysql_query($sql); $i = 0; echo '<ul class="payss">'; // on boucle sur tous les éléments while($autoCompletion = mysql_fetch_assoc($req)){ echo ' <li class="pays"><span class="informal" style="display: none;">'.$autoCompletion['code_faculte'].'-idcache</span><div class="nom">'.$autoCompletion['libelle_faculte'].'</div></li>'; // on s'arrête s'il y en a trop if (++$i >= 10) die('<li>...</li></ul>'); } echo '</ul>'; die(); } elseif(isset($_POST['code_faculte'])){ // renvoyé par le deuxième Autocompleter header('Content-type: text/html; charset=iso-8859-1'); // on fait la requête $sql = "SELECT `code_filiere`, `libelle_filiere` FROM `filiere` WHERE `libelle_filiere` LIKE '".$_POST['filiere']."%' AND `code_faculte`='".$_POST['code_faculte']."'"; $req = mysql_query($sql); $i = 0; echo '<ul class="villes">'; // on boucle sur tous les éléments while($autoCompletion = mysql_fetch_assoc($req)){ echo ' <li class="ville"><span class="informal" style="display: none;">'.$autoCompletion['code_filiere'].'-idcache</span><div class="nom">'.$autoCompletion['libelle_filiere'].'</div></li>'; // on s'arrête s'il y en a trop if (++$i >= 10) die('<li>...</li></ul>'); } echo '</ul>'; die(); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Lier deux champs en autocompletion</title> <script type="text/javascript" src="lib/prototype.js"></script> <script type="text/javascript" src="lib/scriptaculous.js"></script> <script type="text/javascript" src="lib/autocompletion2.js"></script> <style type="text/css"> body{ font-family: Verdana, Arial, Helvetica, sans-serif; text-align: justify; font-size: 12px; color: #565656; } img { border: none; } ul { list-style: none; margin: 0; padding: 0; } /* Autocompletion */ .update{ position:absolute; width:250px; background-color:white; border:1px solid #888; margin:0px; padding:0px; } ul.villes, ul.payss { list-style-type: none; margin:0px; padding:0px; text-align: left; } ul.villes li.selected, ul.payss li.selected { background-color: #ffb; cursor: pointer; } li.ville, li.pays { list-style-type: none; display:block; margin:0; padding:2px; height:15px; } li.ville div.nom, li.pays div.nom { font-weight:bold; font-size:12px; line-height:1.2em; } </style> </head> <body> Liste des pays avec leur villes présents dans la base :<br/> <?php // on fait la requête $sql1 = "SELECT `libelle_faculte`, `code_faculte` FROM `faculte`"; $req1 = mysql_query($sql1); while($allfaculte = mysql_fetch_assoc($req1)){ echo '<u>'.$allfaculte['code_faculte'].'.</u> '.$allfaculte['libelle_faculte'].'<br/>'; $sql2 = "SELECT `libelle_filiere`, `code_filiere` FROM `filiere` WHERE `code_faculte` = \"".$allfaculte['code_faculte']."\""; $req2 = mysql_query($sql2); while($somefiliere = mysql_fetch_assoc($req2)){ echo '&nbsp;&nbsp;&nbsp;&nbsp;<u>'.$somefiliere['code_filiere'].'.</u> '.$somefiliere['libelle_filiere'].'<br/>'; } } ?> <br/> <form action="?" method="post"> <div style="float: left"> <label for="faculte">faculte : </label> <!-- Le champ "pays" 1ère autocomplétion --> <input type="input" name="faculte" id="faculte" value="" /> <div class="update" id="faculte_update"></div> </div> <div style="float: left; margin-left: 20px"> <label for="filiere">filiere : </label> <!-- Le champ "filiere" 2ème autocomplétion, liée à "faculte" --> <input type="input" name="filiere" id="filiere" value="" /> <div class="update" id="filiere_update"></div> </div> <div> <!-- Le champ caché "id_faculte" pour faculte --> <input type="hidden" name="faculte_id" id="faculte_id" value="" /> <!-- Le champ caché "id_filiere" pour filiere (si, si, sans déconner !) --> <input type="hidden" name="filiere_id" id="filiere_id" value="" /> </div> </form> <script type="text/javascript"> new Ajax.Autocompleter ( 'faculte', 'faculte_update', 'autocompletion2.php', { method: 'post', paramName: 'faculte', afterUpdateElement: ac_return } ); filiere_completer = new Ajax.Autocompleter ( 'filiere', 'filiere_update', 'autocompletion2.php', { method: 'post', paramName: 'filiere', parameters: 'code_faculte='+$F('faculte_id'), afterUpdateElement: ac_return } ); Event.observe( 'faculte', 'blur', function(){ filiere_completer.options.defaultParams='code_faculte='+$F('faculte_id') } ); </script> </body> </html>


Quelqu'un l'a deja fait ? ou alors quelqu'un pour m'aider ?

Merci à tous
__________________________
A partir du 14 Mars à 08h43, je passe en mode Flex ....
Le code..............
Ya rien de mieux Ke le kod............

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

Visiteur MP
Membre du club
Inscrit :
Messages : 1244
Message
#142454
Posté le 07/09/07 à 16:15
bonjour,

à priori j'éviterais de faire appel au serveur
à chaque frappe au clavier !!!!
bonjour les temps de réponse et la saturation
du dit serveur !

on peut faire des choses :
http://marcel-bultez.chez-alice.fr/documents/ADSL/ADSL.php
par exemple.

Cordialement. @+

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE

linkin_pc
Admin Projet
Superviseur :
- Méthodologie.
Modérateur :
- Flex
Chef de projet(s) :
- Time Counter
- Time Counter Ad.

Avatar de linkin_pc
Inscrit : 06/10/2006
Messages : 318
Message
#142472
Posté le 07/09/07 à 18:04
Ouaip. mais on peut dire que c'est le but de l'ajax : quoiqu'il arrive on fait appel au serveur. Ceci dit avec un accès persistant au serveur c'est pas gagné d'avance et bientot venu les degats comme tu dis. Mais en mode déconnecté (style ASP), bah les problemes d'accès au serveur ne sont plus un frein.

Mais bon. Hormis cela. ton script est similaire à un script que j'ai eu à tester du moins une methode. mais j'y rejette un oeil. si tu dis que ca marche alors ca marche.
Merci encore.
__________________________
A partir du 14 Mars à 08h43, je passe en mode Flex ....
Le code..............
Ya rien de mieux Ke le kod............

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM AJAX



    PAGE : [1]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.