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

jQuery Discussion :

autocomplete ui ne marche pas avec 1ère lettre


Sujet :

jQuery

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Points : 149
    Points
    149
    Par défaut autocomplete ui ne marche pas avec 1ère lettre
    Bonjour,

    j'ai mit un formulaire de recherche j'ai fait fonctionne l’autocomplétion.Mais j'ai deux soucis le 1er je veux que ça commence a la 1ere lettre.

    ici ca fonctionne exemple sur le b mais pas sur le a ou je doit mettre deux lettres.

    et deuxième problème j'ai des lignes vides qui sont retourne dans l’autocomplétion.


    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
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
      <script src="https://code.jquery.com/ui/1.9.0/jquery-ui.js"></script>
      <script>
      $(function() {
            $( "#select-category" ).autocomplete({
                source:'liste-pivot.php',
    			 "response" : function( event, ui ){
        	var str = $( this ).val().toLowerCase(), 
        		n = -1;
     
        	$( ui.content ).each( function( i, item ){
        		/*
        		 * Pour prendre en compte les majuscules et
        		 * les minuscules il faut utiliser 
        		 * toLowerCase().indexOf().
        		 */
        		n = item.value.toLowerCase().indexOf( str );
     
        		/*
        		 * Recherche uniquement dans les trois premiers caratères : 0, 1 et 2.
        		 */
        		if ( n == -1 || n > 0 ){
        			item.label = item.value = "";
        		}
        	});
    			    }
            });
        });
    voici la page liste-pivot.php:
    Code PHP : 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
    <?php
    // debut session
    session_start();
     
    //connexion a la bdd 
    try
    {
    	connexion base//
    }
    catch (Exception $e)
    {
            die('Erreur : ' . $e->getMessage());
    }
     
     
    $term = $_GET['term'];
     
    $requete = $bdd->prepare('SELECT distinct(pivot_local) FROM servicepublic WHERE pivot_local LIKE :term'); // j'effectue ma requête SQL grâce au mot-clé LIKE
    $requete->execute(array('term' => '%'.$term.'%'));
     
    $array = array(); // on créé le tableau
     
    while($donnee = $requete->fetch()) // on effectue une boucle pour obtenir les données
    {
        array_push($array, $donnee['pivot_local']); // et on ajoute celles-ci à notre tableau
    }
     
    echo json_encode($array); // il n'y a plus qu'à convertir en JSON
     
    ?>

    j'ai fait un distinct car je voulais que les valeurs de cette colonne qui des fois peut le même nom pour plusieurs enregistrements.

    merci pour votre aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Points : 149
    Points
    149
    Par défaut
    j'ai fait cela mais toujorus 3 lettres obligatoire en plus je souhaiterai qu'il recherche aussi dans tout la longueurs des mots début, milieu, fin des mots

    code header :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      $(function() {
            $( "#select-category" ).autocomplete({
                source:'liste-pivot.php',
    			minLength: 1
            });
        });
    voic la page liste_pivot :

    Code PHP : 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
    <?php
     
     
    //connexion a la bdd 
     
     
    $term = $_GET['term'];
     
    $requete = $bdd->prepare('SELECT distinct(type_service_public) FROM servicepublic WHERE type_service_public LIKE :term'); // j'effectue ma requête SQL grâce au mot-clé LIKE
    $requete->execute(array('term' => '%'.$term.'%'));
     
    $array = array(); // on créé le tableau
     
    while($donnee = $requete->fetch()) // on effectue une boucle pour obtenir les données
    {
        array_push($array, $donnee['type_service_public']); // et on ajoute celles-ci à notre tableau
    }
     
    echo json_encode($array); // il n'y a plus qu'à convertir en JSON
     
    ?>

    la je suis oblige de taper mais pour qu'il affiche les 1 enregistrements trouvés.

    merci pour votre aide.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    Ha ben non autocomplete c'est que le debut ...
    Faudrait voir au niveau de la requete coté serveur pour faire un LIKE un REGEX
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre habitué
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Points : 149
    Points
    149
    Par défaut
    alors quand je tappe mai

    il sort mairie et caisse primaire donc je pense que c'est bon pour qu'il regarde partout dans le mots, j'ai pas toucher au code par contre toujours obliger de tapper 3 lettre.

    Je ne comprend pas pourquoi alors que je précise dès la 1ere lettre.

  6. #6
    Membre habitué
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Points : 149
    Points
    149
    Par défaut autocomplete sur grosse bdd bloque
    Bonsoir,

    je chercher à inserer les categories dans l'autocomplete.

    Pour l'instant mon code n'afficher que les nom des services avant que j'ajoute pour les categories ou la plus rien ne s'affiche.

    Je souhaite ainsi afficher ;

    pivot local 1

    nom_service_public 1

    nom_service_public 2

    pivot local 2

    nom_service_public 1

    nom_service_public 2

    .......

    voici l'index :

    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
    <script>
          $(function() {
    	  $.widget( "custom.catcomplete", $.ui.autocomplete, {
    	_renderMenu: function( ul, items ) {
    		var self = this,
    		currentCategory = "";
    		$.each( items, function( index, item ) {
    			if ( item.category != currentCategory ) {
    			ul.append( "<li class='ui-autocomplete-category'>" + item.category + "</li>" );
    			currentCategory = item.category;
    			}
    		self._renderItem( ul, item );
    		});
    	}
    });
     
    	$("#theinput" ).catcomplete({
    	source: 'search.php',
            select: function( event, ui ) ,
            minLength:1
    	});
    });
        </script>
    Voici la page search.php :
    Code PHP : 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
        $term = $_GET['term'];
        $array = array(); // on créé le tableau
     
     
        $bdd_reponse = $pdo->prepare('SELECT pivot_local,nom_service_public,type_service_public,id_service_public FROM `servicepublic` WHERE `pivot_local` LIKE :term group by pivot_local');
        $bdd_reponse->execute(array('term' => '%'.$term.'%'));
     
     
        while($donnee = $bdd_reponse->fetch()) // on effectue une boucle pour obtenir les données
        {
            $array_little = array(
                    'value' => $donnee['id_service_public'],
                    'label' => $donnee['type_service_public'],
                  'category' =>$donnee['nom_service_public']
            );
            array_push($array, $array_little); // et on ajoute celles-ci à notre tableau
        }
        $bdd_reponse->closeCursor();
     
        echo json_encode($array);

  7. #7
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 407
    Points : 4 844
    Points
    4 844
    Par défaut
    Salut,

    tu peux exporter ta base de donnée dans un fichier.sql et l'envoyer pour faire un teste en locale ?

Discussions similaires

  1. [PHP-JS] Marche pas avec le Javascript?
    Par MinsK dans le forum Langage
    Réponses: 3
    Dernier message: 04/05/2006, 14h24
  2. [VB6] TypeOf ne marche pas avec les Label ?
    Par belfaigore dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 21/04/2006, 13h36
  3. [CSS] Bug IE avec height ne marche pas avec les %
    Par El Riiico dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 23/06/2005, 17h11
  4. [xhtml][css] bouton du form ne marche pas avec IE6
    Par chinouk dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 14/06/2005, 14h00
  5. Rollback ne marche pas avec interbase
    Par Tsimplice dans le forum Bases de données
    Réponses: 2
    Dernier message: 09/03/2004, 08h39

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