Partage
  • Partager sur Facebook
  • Partager sur Twitter

Moteur de recherche 3 lettres minimum

Sujet résolu
    15 juillet 2019 à 21:36:07

    Bonjour,

    Voila je ne suis pas à l'aise avec js du coup j'ai trouvé un truc faisant l'affaire adapé à mes besoins.

    Tout marche cependant la proposition issu de la base de donnée ce fait dès la première lettre saisie et je souhaiterais que ça soit à partir de 3 lettre saisie minimum.

    <input type="text" name="country" id="country" class="form-control" placeholder="Exemple: Lyon" /> 
    									<div id="countryList"></div> 
    									</div>
    							
    									
    								 <script>  
    									 $(document).ready(function(){  
    										  $('#country').keyup(function(){  
    											   var query = $(this).val();  
    											   if(query != '')  
    											   {  
    													$.ajax({  
    														 url:"search.php",  
    														 method:"POST",  
    														 data:{query:query},  
    														 success:function(data)  
    														 {  
    															  $('#countryList').fadeIn();  
    															  $('#countryList').html(data);  
    														 }  
    													});  
    											   }  
    										  });  
    										  $(document).on('click', 'li', function(){  
    											   $('#country').val($(this).text());  
    											   $('#countryList').fadeOut();  
    										  });  
    									 });  
    									 </script> 

    Coté php

    <?php  
     $connect = mysqli_connect("localhost", "root", "", "plateforme");  
     if(isset($_POST["query"]))  
     {  
          $output = '';  
          $query = "SELECT Nom_commune, Code_postal FROM villes_de_france WHERE Nom_commune LIKE '%".$_POST["query"]."%'";  
          $result = mysqli_query($connect, $query);  
          $output = '<ul class="list-unstyled">';  
          if(mysqli_num_rows($result) > 0)  
          {  
               while($row = mysqli_fetch_array($result))  
               {  
                    $output .= '<li>'.$row["Nom_commune"].'</li>';  
               }  
          }  
          else  
          {  
               $output .= '<li>Ville inexistante</li>';  
          }  
          $output .= '</ul>';  
          echo $output;  
     }  
     ?>  





    • Partager sur Facebook
    • Partager sur Twitter
      16 juillet 2019 à 0:06:57

      Hello

      Ton sujet n'est vraiment pas clair, je ne suis pas sur d'apporter la bonne réponse.

      Je pense que si tu ajoutes un " && query.lenght >=3" à ton teste ligne 10, cela va déclencher le processus uniquement lorsque ta query contiendra 3 lettres.

      En espérant t'avoir aidé.

      • Partager sur Facebook
      • Partager sur Twitter
        16 juillet 2019 à 8:44:13

        Je comprends l'instruction qui dit en gros si différent de vide et si query fait plUS DE 3 caractères.

        Mais ça ne marche pas.

        <script>  
        									 $(document).ready(function(){  
        										  $('#country').keyup(function(){  
        											   var query = $(this).val();  
        											   if(query != ''&& query.lenght >=3 )  
        											   {  
        													$.ajax({  
        														 url:"search.php",  
        														 method:"POST",  
        														 data:{query:query},  
        														 success:function(data)  
        														 {  
        															  $('#countryList').fadeIn();  
        															  $('#countryList').html(data);  
        														 }  
        													});  
        											   }  
        										  });  
        										  $(document).on('click', 'li', function(){  
        											   $('#country').val($(this).text());  
        											   $('#countryList').fadeOut();  
        										  });  
        									 });  
        									 </script> 



        • Partager sur Facebook
        • Partager sur Twitter
          16 juillet 2019 à 10:14:11

          Bonjour,

          la propriété s'écrit length et non lenght

          • Partager sur Facebook
          • Partager sur Twitter
            16 juillet 2019 à 10:19:29

            Salut, 

            ça ne fonctionne pas car tu as mis .lenght au lieu de .length :) Voici :

            var query = $(this).val(); 
            if(query && query.length >= 3){

            Juste une petite faute de frappe ;)

            • Partager sur Facebook
            • Partager sur Twitter
              16 juillet 2019 à 10:23:18

              Lol, top, parfait les gars,

              Merci

              • Partager sur Facebook
              • Partager sur Twitter

              Moteur de recherche 3 lettres minimum

              × 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