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

AJAX Discussion :

[AJAX] Fonction Autocomplete Ajax


Sujet :

AJAX

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 19
    Par défaut [AJAX] Fonction Autocomplete Ajax
    Bonjour à tous !
    Alors voilà je vous explique mon petit problème: j'ai un petit script avec un formulaire, la personne doit saisie le nom de l'entreprise et grâce au script au bout de trois lettres saisies la base de donnée renvoie des suggestions.

    Seulement je voudrais que ce script s'applique à deux champs, mais je n'y arrive pas.

    Voila le script:

    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
    78
    <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
    <html>
    <head>
    <title>FORMULAIRE POUR LE CMS</title>
    <script src="jquery-1.2.1.pack.js" type="text/javascript"></script>
    <script type="text/javascript">
     
     
    	function lookup(entreprise) {
    		if(entreprise.length == 0) { // si le champs txte est vide
    			$('#reponse').hide(); // on cache les suggestions
    		} else { // sinon
    			$.post("req.php", {requetedemande: ""+entreprise+""}, function(data){ // on envoit la valeur du champ texte dans la variable post queryString au fichier ajax.php
    				if(data.length >0) {
    					$('#reponse').show(); // si il y a un retour, on affiche la liste
    					$('#liste_reponse').html(data); // et on remplit la liste des données
    				}
    			});
    		}
    }
     
    	function fill(thisValue) { // remplir le champ texte si une suggestion est cliquée
    		$('#entreprise').val(thisValue);
    		setTimeout("$('#entreprise').hide();", 200);
    }
     
    	$(document).ready( function () { // lorsque la page est entierement chargée
    	$("input#entreprise").keyup( function() { // si on presse une touche du clavier en étant dans le champ texte qui a pour id inputString
    		lookup($(this).val()) 
    	});
     
    	$("input#entreprise").blur( function() { // si le champs texte perd le focus
    		fill() 
    	});
    });
     
     
    	</script>
     
     
     
    <form action="req.php" method="post">
     
    <div>
    		Nom du Projet :
    		<br />
    		<input type="text" size="30" value="" id="projet" />
    		Type de Projet :
    		<br />
    		<select name="type" size="1">
    			<option>Institutionnel</option>
    			<option>E-commerce</option>
            </select>
    		Nom de l'entreprise:
    		<br />
    		<input type="text" size="30" value="" id="entreprise" /><!--  champ texte à analyser pour les suggestions -->
    </div>
     
    <div  id="reponse" style="display: none;"> <!-- bloc contenant les eventuelles suggestions -->
    <div  id="liste_reponse"><!-- liste contenant les suggestions -->
    			&nbsp;
    		</div>
    </div>
    <div>
    		Nom du client:
    		<br />
    		<input type="text" size="30" value="" id="client" /><!--  champ texte à analyser pour les suggestions -->
    </div>
     
    <div  id="reponse_client" style="display: none;"> <!-- bloc contenant les eventuelles suggestions -->
    <div  id="liste_reponse_client"><!-- liste contenant les suggestions -->
    			&nbsp;
    		</div>
    </div>
     
    </form>
    </body>
    </html>
    et voila le script requete:

    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
    <?php
     
     
    	mysql_connect("localhost", "root", "");
    	mysql_select_db("cms");
     
    		// si une variable queryString a été posté
                   if(isset($_POST['requetedemande'])) {
    				$requetedemande = $_POST['requetedemande'];
    			// si la longueur du contenu de la variable est superieur à 0			
    			if(strlen($requetedemande) >3) {
     
    				// requete sql à personnaliser pour correspondre à votre base de données
    				$result = mysql_query("SELECT Nom FROM contacts WHERE Nom LIKE '$requetedemande%' LIMIT 10");
    				if($result) {
     
    					// on parcourt les resultats
    					while ($rep = mysql_fetch_object($result)) {
    						// on affiche les resultats dans un element de liste en ajoutant 
                                                    // la fonction fill sur l'evenenement onClick
     
    		         			echo '<li onClick="fill(\''.$rep->Nom.'\');">'.$rep->Nom.'</li>';
    	         		        }
    				} else {
    					echo 'Il y a une probleme avec la requete sql.';
    				}
    			} 
    		} else 
    		{
    			echo 'Il ne devrait pas avoir un accès direct à ce script !!!';
    		}
     
    ?>
    Si vous pouviez me guider, à la limite rien que me dire par ou commencer, ce serait super. Merci d'avance.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $("input#entreprise").keyup( function() { // si on presse une touche du clavier en étant dans le champ texte qui a pour id inputString
    	lookup($(this).val()) 
    });
     
    $("input#entreprise").blur( function() { // si le champs texte perd le focus
    	fill() 
    });
    Adapte cette partie pour qu'elle s'applique à ton autre champ
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    si tu saiss le faire vraiment pour un, au pire tu mets une deuxieme fonction javascript identique.

    L'une s'apperait lookup et l'autre lookup2
    Ils appelleraient recherche.php et recherche2.php si ce n'est pas la même table !

    Ors j'ais vu que tu savais

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

Discussions similaires

  1. [AJAX] setinterval en ajax fonction sous le navigateur sauf sous explorer
    Par speedylol dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/01/2008, 15h34
  2. [AJAX] Tutoriel, Autocompletion et event onkeypress
    Par Kael dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 21/06/2007, 11h21
  3. [AJAX] Autocomplete ajax
    Par jenyfer dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 14/12/2006, 22h06
  4. [AJAX] fonction js
    Par Empty_body dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/11/2006, 16h42
  5. [AJAX]Tutoriel autocompletion > problème accents
    Par worldwide dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/07/2006, 13h48

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