Partage
  • Partager sur Facebook
  • Partager sur Twitter

JQUERY autocomplete

Sujet résolu
    22 avril 2018 à 21:49:03

    Bonsoir à tous!

    J'essaie désespérément (:lol:) de faire fonctionner l'autocomplete mais je n'arrive pas au résultat attendu. 

    Le résultat obtenu : dès que j'entre une lettre dans ma zone de texte, il me propose les 241 lignes de ma bdd sans tenir compte de la lettre entrée.

    form2.php

    <!DOCTYPE html>
    <html>
    		<head>
    				<meta charset="utf-8" />
    				<title>Test</title>
    				<script type="text/javascript" src="jquery.js"></script>
    				<script type="text/javascript" src="jquery-ui-1.12.1/jquery-ui.js"></script>
    				<script>
    						$(function()
    						{
    						    $("#tags").autocomplete({source: "testbdd.php"});
    						});
    				</script>				
    		</head>
    		<body>
    				<p>test : <input id="tags"></p>
    		</body>
    </html>

    testbdd.php

    <?php
    		try
    		{
    		$bdd = new PDO('mysql:host=localhost;dbname=autocomp', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
    		}
    			catch (Exception $e)
    		{
    			die('Erreur : ' . $e->getMessage());
    		}
    		$req=$bdd->query('SELECT name FROM pays');
    		while($donnees = $req->fetch(PDO::FETCH_ASSOC)) 
    		{
    	        // On ajoute les données dans un tableau
    	        $suggestions[] = $donnees['name'];
    	    }
    	    echo json_encode($suggestions);						
    ?>




    (deuxieme chose inattendue : en selectionnant une valeur dans la liste, il me l'affiche dans la zone de texte, mais en dessous aussi??? je ne vois pas la ligne qui correspond à cet affichage.

    • Partager sur Facebook
    • Partager sur Twitter
      22 avril 2018 à 22:07:33

      Bonjour,

      je ne vois pas trop pourquoi tu fais appel à un fichier externe si tu ne lui passe pas de données avec le Jquery, tu pourrais aussi bien le mettre dans le même fichier.

      <?php
              try
              {
              $bdd = new PDO('mysql:host=localhost;dbname=autocomp', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
              }
                  catch (Exception $e)
              {
                  die('Erreur : ' . $e->getMessage());
              }
              $req=$bdd->query('SELECT name FROM pays');
              while($donnees = $req->fetch(PDO::FETCH_ASSOC))
              {
                  // On ajoute les données dans un tableau
                  $suggestions[] = $donnees['name'];
              }
              $tab = '["'.implode('","',$suggestions).']"';
      ?>
      <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Test</title> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="jquery-ui-1.12.1/jquery-ui.js"></script> <script> $(function() { var tag = <?php echo $tab; ?>; $("#tags").autocomplete({source: tag}); }); </script> </head> <body> <p>test : <input id="tags"></p> </body> </html>



      • Partager sur Facebook
      • Partager sur Twitter
        22 avril 2018 à 22:30:08

        Merci pour ta réponse, c'est vrai qu'on peut le mettre sur la même page. 

        Mais avec la solution proposée, je n'ai plus du tout de suggestion. 

        J'ai trouvé une petite formation sur le sujet... je m'y colle:)

        • Partager sur Facebook
        • Partager sur Twitter

        JQUERY autocomplete

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown