Requête AJAX et l'autocomplétion

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par Secu1000, 24 Juillet 2014.

  1. Secu1000
    Secu1000 Nouveau WRInaute
    Inscrit:
    23 Juin 2014
    Messages:
    17
    J'aime reçus:
    0
    Bonjour à tous,

    Je me permet de vous contacter car cela fais maintenant quelques jours que je bloque sur un point.

    Je vous explique, j'ai mis en place un système d'autocomplétion sur des champs INPUT, jusque la tout va bien, ça fonctionne à merveille.
    Lorsque l'internaute effectue une recherche sur un terme précis les résultats lui sont proposés.

    Mais admettons que la suite de mot recherché ne soit pas en début de nom, alors là il ne le trouvera pas.

    Exemple : nous recherchons les lettres "ACSM", le système nous proposera "ACSM FC", mais il ne nous proposera pas "Boulogne ACSM" car celles-ci ne sont pas en début de chaine.

    Voici mon code AJAX :

    Code:
    var cache = {};
    			$(function ()
    			{
    				$("#nom").autocomplete({
    					source: function (request, response)
    					{
    						//Si la réponse est dans le cache
    						if (('CLIENT' + '-' + request.term) in cache)
    						{
    							response($.map(cache['CLIENT' + '-' + request.term], function (item)
    							{
    
    								return {
    									label: item.Nom,
    									value: function ()
    									{
    										if($(this).attr('id') == 'nom')
    										{
    											$('#id').val('CL0' + item.Id), $('#ville').val(item.Ville), $('#adfac').val(item.Adfac), $('#cp').val(item.CodePostal), $('#tel').val(item.Tel), $('#email').val(item.Email);
    											return item.Nom;
    										}
    										else
    										{
    											$('#nom').val(item.Nom);
    										}
    									}
    								}
    							}));
    						}
    						//Sinon -> Requete Ajax
    						else
    						{
    							var objData = {};
    							if ($(this.element).attr('id') == 'nom')
    							{
    								objData = { Nom: request.term, code: 'CLIENT', maxRows: 20 };
    							}
    							$.ajax({
    								url: "http://www.monsite.com/AutoCompletion.php",
    								dataType: "json",
    								data: objData,
    								type: 'POST',
    								success: function (data)
    								{
    									//Ajout de reponse dans le cache
    									cache[('CLIENT' + '-' + request.term)] = data;
    									response($.map(data, function (item)
    									{
    
    										return {
    											label: item.Nom,
    											value: function ()
    											{
    												if($(this).attr('id') == 'nom')
    												{
    													$('#id').val('CL0' + item.Id), $('#ville').val(item.Ville), $('#adfac').val(item.Adfac), $('#cp').val(item.CodePostal), $('#tel').val(item.Tel), $('#email').val(item.Email);
    													return item.Nom;
    												}
    												else
    												{
    													$('#nom').val(item.Nom);
    													return item.Nom;
    												}
    											}
    										}
    									}));
    								}
    							});
    						}
    					},
    					minLength: 1,
    					delay: 100
    				});
    			});
    J'ai essayé pas mal de solution mais impossible de m'en sortir, j'espère que vous pourrez m'aider.

    Merci
     
  2. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 159
    J'aime reçus:
    326
    Si la requête SQL est un LIKE, elle doit être du type: WHERE title LIKE '%ACSM%' (le pourcent % au début et à la fin).
    Sinon full text search ce sera good aussi.
     
  3. cduray
    cduray Nouveau WRInaute
    Inscrit:
    7 Avril 2008
    Messages:
    38
    J'aime reçus:
    0
    Bonjour,

    C'est plutôt au niveau du AutoCompletion.php qu'il faut regarder. Tu as probablement une requête du style

    Code:
    select machin from matable where machin like '$monchamp%' limit 10;
    --> tu peux la remplacer par
    Code:
    select machin from matable where machin like '%$monchamp%' limit 10;
    MAIS, au niveau performances sur la DB c'est moins bien (impossibilité d'utiliser correctement un index sur le champ machin s'il existait). Donc c'est une solution OK pour une table pas trop volumineuse (qques milliers de rows), mais ça peut ralentir ton serveur dans le cas contraire.
     
  4. Secu1000
    Secu1000 Nouveau WRInaute
    Inscrit:
    23 Juin 2014
    Messages:
    17
    J'aime reçus:
    0
    Merci pour votre réponse rapide.

    Je comprend le concept, j'ai déjà essayé mais sans résultat, peut-etre m'y suis-je mal pris.

    Voici le code :
    Code:
    //Construction de la requete
    $strQuery = "SELECT ID Id, NOM Nom, VILLE Ville, CP CodePostal, ADFAC Adfac, ADLIV Adliv, TEL Tel, MOBILE Mobile, FAX Fax, EMAIL Email, COMPTE Compte, BLACKLIST Blacklist FROM clients WHERE ";
    if (isset($_POST["Nom"]))
    {
        $strQuery .= "NOM LIKE :Nom ";
    }
    else if (isset($_POST["CodePostal"]))
    {
        $strQuery .= "CP LIKE :CodePostal ";
    }
    Comment feriez-vous ?

    Merci
     
  5. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 159
    J'aime reçus:
    326
  6. Secu1000
    Secu1000 Nouveau WRInaute
    Inscrit:
    23 Juin 2014
    Messages:
    17
    J'aime reçus:
    0
    Oui merci, j'ai déjà parcouru ce document.

    En fait, ce que je ne comprend pas c'est la façon de faire.

    Comment positionner les "%" et pourquoi y a t-il les ":" dans ce bout de code ?

    Code:
    if (isset($_POST["Nom"]))
    {
        $strQuery .= "NOM LIKE :Nom ";
    }
    Ce code a été repris à partir d'un système d'auto-complétion existant, je l'ai arrangé à ma sauce sans vraiment avoir tout compris.

    j'ai essayé :
    Code:
    $strQuery .= "NOM LIKE :%Nom% ";
     $strQuery .= "NOM LIKE :'%Nom%' ";
    $strQuery .= "NOM LIKE %Nom% ";
     $strQuery .= "NOM LIKE '%Nom%' ";
     $strQuery .= "NOM LIKE :"%Nom%" ";
    
    Et ça fait planté tout le script.
     
  7. baud74
    baud74 WRInaute impliqué
    Inscrit:
    21 Juillet 2014
    Messages:
    586
    J'aime reçus:
    0
    essaie
    $strQuery .= "NOM LIKE %:Nom%";
     
  8. Secu1000
    Secu1000 Nouveau WRInaute
    Inscrit:
    23 Juin 2014
    Messages:
    17
    J'aime reçus:
    0
    Non cela ne fonctionne pas.. mais merci quand même
     
  9. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 917
    J'aime reçus:
    76
    Remplace

    Code:
    if (isset($_POST["Nom"]))
    {
        $strQuery .= "NOM LIKE :Nom ";
    }
    
    par

    Code:
    if (isset($_POST["Nom"]))
    {
        $strQuery .= "NOM LIKE '%Nom%'";
    }
    
    Et fait de même pour les autres $strQuery .= de ton fichier autocompletion.php.
     
  10. Secu1000
    Secu1000 Nouveau WRInaute
    Inscrit:
    23 Juin 2014
    Messages:
    17
    J'aime reçus:
    0
    Ca ne marche pas, pour que ce soit plus clair pour vous, voici tout le code qui fonctionne sans les "%" :

    Code:
    <?php
    require("class/CompletionClients.class.php");
    
    //Initialisation de la liste
    $list = array();
    
    //Connexion MySQL
    try
    {
        $db = new PDO('mysql:host=localhost;dbname'', '');
    }
    catch (Exception $ex)
    {
        echo $ex->getMessage();
    }
    
    //Construction de la requete
    $strQuery = "SELECT ID Id, NOM Nom, VILLE Ville, CP CodePostal, ADFAC Adfac, ADLIV Adliv, TEL Tel, MOBILE Mobile, FAX Fax, EMAIL Email, COMPTE Compte, BLACKLIST Blacklist FROM clients WHERE ";
    if (isset($_POST["Nom"]))
    {
        $strQuery .= "NOM LIKE :Nom ";
    }
    else if (isset($_POST["CodePostal"]))
    {
        $strQuery .= "CP LIKE :CodePostal ";
    }
    else if (isset($_POST["Id"]))
    {
        $strQuery .= "ID LIKE :Id ";
    }
    else if (isset($_POST["Adfac"]))
    {
        $strQuery .= "ADFAC LIKE :Adfac ";
    }
    else if (isset($_POST["Adliv"]))
    {
        $strQuery .= "ADLIV LIKE :Adliv ";
    }
    else if (isset($_POST["Tel"]))
    {
        $strQuery .= "TEL LIKE :Tel ";
    }
    else if (isset($_POST["Mobile"]))
    {
        $strQuery .= "MOBILE LIKE :Mobile ";
    }
    else if (isset($_POST["Fax"]))
    {
        $strQuery .= "FAX LIKE :Fax ";
    }
    else if (isset($_POST["Email"]))
    {
        $strQuery .= "EMAIL LIKE :Email ";
    }
    else if (isset($_POST["Compte"]))
    {
        $strQuery .= "COMPTE LIKE :Compte ";
    }
    else if (isset($_POST["Blacklist"]))
    {
        $strQuery .= "BLACKLIST LIKE :Blacklist ";
    }
    else
    {
        $strQuery .= "VILLE LIKE :ville ";
    }
    $strQuery .= "AND CODE = 'CLIENT' ";
    //Limite
    if (isset($_POST["maxRows"]))
    {
        $strQuery .= "LIMIT 0, :maxRows";
    }
    $query = $db->prepare($strQuery);
    if (isset($_POST["CodePostal"]))
    {
        $value = $_POST["CodePostal"]."%";
        $query->bindParam(":CodePostal", $value, PDO::PARAM_STR);
    }
    else if (isset($_POST["Nom"]))
    {
        $value = $_POST["Nom"]."%";
        $query->bindParam(":Nom", $value, PDO::PARAM_STR);
    }
    else if (isset($_POST["Id"]))
    {
        $value = $_POST["Id"]."%";
        $query->bindParam(":Id", $value, PDO::PARAM_STR);
    }
    else if (isset($_POST["Adfac"]))
    {
        $value = $_POST["Adfac"]."%";
        $query->bindParam(":Adfac", $value, PDO::PARAM_STR);
    }
    else if (isset($_POST["Adliv"]))
    {
        $value = $_POST["Adliv"]."%";
        $query->bindParam(":Adliv", $value, PDO::PARAM_STR);
    }
    else if (isset($_POST["Tel"]))
    {
        $value = $_POST["Tel"]."%";
        $query->bindParam(":Tel", $value, PDO::PARAM_STR);
    }
    else if (isset($_POST["Mobile"]))
    {
        $value = $_POST["Mobile"]."%";
        $query->bindParam(":Mobile", $value, PDO::PARAM_STR);
    }
    else if (isset($_POST["Fax"]))
    {
        $value = $_POST["Fax"]."%";
        $query->bindParam(":Fax", $value, PDO::PARAM_STR);
    }
    else if (isset($_POST["Email"]))
    {
        $value = $_POST["Email"]."%";
        $query->bindParam(":Email", $value, PDO::PARAM_STR);
    }
    else if (isset($_POST["Compte"]))
    {
        $value = $_POST["Compte"]."%";
        $query->bindParam(":Compte", $value, PDO::PARAM_STR);
    }
    else if (isset($_POST["Blacklist"]))
    {
        $value = $_POST["Blacklist"]."%";
        $query->bindParam(":Blacklist", $value, PDO::PARAM_STR);
    }
    else
    {
        $value = $_POST["ville"]."%";
        $query->bindParam(":ville", $value, PDO::PARAM_STR);
    }
    //Limite
    if (isset($_POST["maxRows"]))
    {
        $valueRows = intval($_POST["maxRows"]);
        $query->bindParam(":maxRows", $valueRows, PDO::PARAM_INT);
    }
    
    $query->execute();
    
    $list = $query->fetchAll(PDO::FETCH_CLASS, "CompletionClients");;
    
    echo json_encode($list);
    
    ?>
     
  11. baud74
    baud74 WRInaute impliqué
    Inscrit:
    21 Juillet 2014
    Messages:
    586
    J'aime reçus:
    0
    $value = "%".$_POST["Nom"]."%";
    $query->bindParam(":Nom", $value, PDO::pARAM_STR);

    sans toucher au reste du code qui fonctionne.
     
  12. Secu1000
    Secu1000 Nouveau WRInaute
    Inscrit:
    23 Juin 2014
    Messages:
    17
    J'aime reçus:
    0
    C'est bon j'ai compris, c'était en fait dans la deuxième partie du code :
    Code:
     $value = $_POST["Nom"]."%";
        $query->bindParam(":Nom", $value, PDO::PARAM_STR);
    Il fallait rajouté "%" avant la valeur POST

    Code:
     $value = "%".$_POST["Nom"]."%";
        $query->bindParam(":Nom", $value, PDO::PARAM_STR);
    Merci beaucoup.

    Edit : Merci Baud74, je viens seulement de m'en rendre compte :)

    Et maintenant, si je peux me permettre, j'aimerais styliser la valeur $_POST dans le champ d'auto-complétion.

    Exemple : Monaco ACSM

    On appel les lettre "CS"

    Je voudrais que ces deux lettres soient colorées.

    j'encadre la valeur POST dans un span ? Edit: le span ne fonctionne pas !
     
  13. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 159
    J'aime reçus:
    326
    C'est exactement ce que j'avais dis dans la 1° réponse ... :roll:
     
  14. Secu1000
    Secu1000 Nouveau WRInaute
    Inscrit:
    23 Juin 2014
    Messages:
    17
    J'aime reçus:
    0
    Oui je savais qu'il fallait un "%" mais je me suis concentré sur une partie du code qui n'était pas la bonne.

    Maintenant, saurais-tu styliser la requête de l'internaute ?

    Merci
     
  15. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 159
    J'aime reçus:
    326
  16. Secu1000
    Secu1000 Nouveau WRInaute
    Inscrit:
    23 Juin 2014
    Messages:
    17
    J'aime reçus:
    0
    Ok merci, mais j'avou que là c'est un peu du chinois pour moi.

    Dans l'idéal il faudrait que j'arrive à me servir de ça :
    Code:
    .autocomplete( "instance" )._renderItem = function( ul, item ) {
    return $( "<li>" )
    .append( "<a>" + item.label + "<br>" + item.desc + "</a>" )
    .appendTo( ul );
    };
    et le convertir afin que je puisse mettre mes request.term en gras par exemple...

    Je vais chercher...
     
  17. Secu1000
    Secu1000 Nouveau WRInaute
    Inscrit:
    23 Juin 2014
    Messages:
    17
    J'aime reçus:
    0
    Bon j'avoue que je stagne un peu... quelqu'un pourrait-il me mettre sur la voie ?
     
  18. baud74
    baud74 WRInaute impliqué
    Inscrit:
    21 Juillet 2014
    Messages:
    586
    J'aime reçus:
    0
    il faut que tu trouves la variable qui contient le terme recherché, puis quelque chose du genre :
    var s = item.label.replace(marecherche, "<strong>"+marecherche+"</strong>");
     
  19. Secu1000
    Secu1000 Nouveau WRInaute
    Inscrit:
    23 Juin 2014
    Messages:
    17
    J'aime reçus:
    0
    var s = item.label.replace(request.term, "<strong>"+request.term+"</strong>");

    Merci pour l'info, j'ai essayé de faire ce que tu me dis, mais je ne sais ou le placer car actuellement ça plante tout le script.
    Code:
    var cache = {};
    			$(function ()
    			{
    				$("#cp, #ville, #nom, #tel, #adfac, #adliv, #mobile, #fax, #email, #compte, #blacklist").autocomplete({
    					source: function (request, response)
    					{
    						//Si la réponse est dans le cache
    						if (('CLIENT' + '-' + request.term) in cache)
    						{
    							response($.map(cache['CLIENT' + '-' + request.term], function (item)
    							{
    
    								return {
    									label: item.Nom + ' - ' + item.CodePostal,
    									value: function ()
    									{
    										if ($(this).attr('id') == 'cp')
    										{
    											$('#id').val('CL0' + item.Id), $('#ville').val(item.Ville), $('#nom').val(item.Nom), $('#adfac').val(item.Adfac), $('#adliv').val(item.Adliv), $('#cp').val(item.CodePostal), $('#mobile').val(item.Mobile), $('#tel').val(item.Tel), $('#fax').val(item.Fax), $('#compte').val(item.Compte), $('#blacklist').val(item.Blacklist), $('#email').val(item.Email);
    											return item.CodePostal;
    										}
    										else if($(this).attr('id') == 'nom')
    										{
    											$('#id').val('CL0' + item.Id), $('#ville').val(item.Ville), $('#nom').val(item.Nom), $('#adfac').val(item.Adfac), $('#adliv').val(item.Adliv), $('#cp').val(item.CodePostal), $('#mobile').val(item.Mobile), $('#tel').val(item.Tel), $('#fax').val(item.Fax), $('#compte').val(item.Compte), $('#blacklist').val(item.Blacklist), $('#email').val(item.Email);
    											return item.Nom;
    										}
    										else if($(this).attr('id') == 'adfac')
    										{
    											$('#id').val('CL0' + item.Id), $('#ville').val(item.Ville), $('#nom').val(item.Nom), $('#adfac').val(item.Adfac), $('#adliv').val(item.Adliv), $('#cp').val(item.CodePostal), $('#mobile').val(item.Mobile), $('#tel').val(item.Tel), $('#fax').val(item.Fax), $('#compte').val(item.Compte), $('#blacklist').val(item.Blacklist), $('#email').val(item.Email);
    											return item.Adfac;
    										}
    										else if($(this).attr('id') == 'adliv')
    										{
    											$('#id').val('CL0' + item.Id), $('#ville').val(item.Ville), $('#nom').val(item.Nom), $('#adfac').val(item.Adfac), $('#adliv').val(item.Adliv), $('#cp').val(item.CodePostal), $('#mobile').val(item.Mobile), $('#tel').val(item.Tel), $('#fax').val(item.Fax), $('#compte').val(item.Compte), $('#blacklist').val(item.Blacklist), $('#email').val(item.Email);
    											return item.Adliv;
    										}
    										else if($(this).attr('id') == 'tel')
    										{
    											$('#id').val('CL0' + item.Id), $('#ville').val(item.Ville), $('#nom').val(item.Nom), $('#adfac').val(item.Adfac), $('#adliv').val(item.Adliv), $('#cp').val(item.CodePostal), $('#mobile').val(item.Mobile), $('#tel').val(item.Tel), $('#fax').val(item.Fax), $('#compte').val(item.Compte), $('#blacklist').val(item.Blacklist), $('#email').val(item.Email);
    											return item.Tel;
    										}
    										else if($(this).attr('id') == 'mobile')
    										{
    											$('#id').val('CL0' + item.Id), $('#ville').val(item.Ville), $('#nom').val(item.Nom), $('#adfac').val(item.Adfac), $('#adliv').val(item.Adliv), $('#cp').val(item.CodePostal), $('#mobile').val(item.Mobile), $('#tel').val(item.Tel), $('#fax').val(item.Fax), $('#compte').val(item.Compte), $('#blacklist').val(item.Blacklist), $('#email').val(item.Email);
    											return item.Mobile;
    										}
    										else if($(this).attr('id') == 'fax')
    										{
    											$('#id').val('CL0' + item.Id), $('#ville').val(item.Ville), $('#nom').val(item.Nom), $('#adfac').val(item.Adfac), $('#adliv').val(item.Adliv), $('#cp').val(item.CodePostal), $('#mobile').val(item.Mobile), $('#tel').val(item.Tel), $('#fax').val(item.Fax), $('#compte').val(item.Compte), $('#blacklist').val(item.Blacklist), $('#email').val(item.Email);
    											return item.Fax;
    										}
    										else if($(this).attr('id') == 'email')
    										{
    											$('#id').val('CL0' + item.Id), $('#ville').val(item.Ville), $('#nom').val(item.Nom), $('#adfac').val(item.Adfac), $('#adliv').val(item.Adliv), $('#cp').val(item.CodePostal), $('#mobile').val(item.Mobile), $('#tel').val(item.Tel), $('#fax').val(item.Fax), $('#compte').val(item.Compte), $('#blacklist').val(item.Blacklist), $('#email').val(item.Email);
    											return item.Email;
    										}
    										else if($(this).attr('id') == 'compte')
    										{
    											$('#id').val('CL0' + item.Id), $('#ville').val(item.Ville), $('#nom').val(item.Nom), $('#adfac').val(item.Adfac), $('#adliv').val(item.Adliv), $('#cp').val(item.CodePostal), $('#mobile').val(item.Mobile), $('#tel').val(item.Tel), $('#fax').val(item.Fax), $('#compte').val(item.Compte), $('#blacklist').val(item.Blacklist), $('#email').val(item.Email);
    											return item.Compte;
    										}
    										else if($(this).attr('id') == 'ville')
    										{
    											$('#id').val('CL0' + item.Id), $('#ville').val(item.Ville), $('#nom').val(item.Nom), $('#adfac').val(item.Adfac), $('#adliv').val(item.Adliv), $('#cp').val(item.CodePostal), $('#mobile').val(item.Mobile), $('#tel').val(item.Tel), $('#fax').val(item.Fax), $('#compte').val(item.Compte), $('#blacklist').val(item.Blacklist), $('#email').val(item.Email);
    											return item.Ville;
    										}
    										else
    										{
    											$('#nom').val(item.Nom);
    										}
    									}
    								}
    							}));
    						}
    						//Sinon -> Requete Ajax
    						else
    						{
    							var objData = {};
    							if ($(this.element).attr('id') == 'cp')
    							{
    								objData = { CodePostal: request.term, code: 'CLIENT', maxRows: 50 };
    							}
    							else if ($(this.element).attr('id') == 'nom')
    							{
    								objData = { Nom: request.term, code: 'CLIENT', maxRows: 20 };
    							}
    							else if ($(this.element).attr('id') == 'adfac')
    							{
    								objData = { Adfac: request.term, code: 'CLIENT', maxRows: 10 };
    							}
    							else if ($(this.element).attr('id') == 'adliv')
    							{
    								objData = { Adliv: request.term, code: 'CLIENT', maxRows: 10 };
    							}
    							else if ($(this.element).attr('id') == 'tel')
    							{
    								objData = { Tel: request.term, code: 'CLIENT', maxRows: 10 };
    							}
    							else if ($(this.element).attr('id') == 'mobile')
    							{
    								objData = { Mobile: request.term, code: 'CLIENT', maxRows: 10 };
    							}
    							else if ($(this.element).attr('id') == 'fax')
    							{
    								objData = { Fax: request.term, code: 'CLIENT', maxRows: 10 };
    							}
    							else if ($(this.element).attr('id') == 'email')
    							{
    								objData = { Email: request.term, code: 'CLIENT', maxRows: 10 };
    							}
    							else if ($(this.element).attr('id') == 'compte')
    							{
    								objData = { Compte: request.term, code: 'CLIENT', maxRows: 20 };
    							}
    							else if ($(this.element).attr('id') == 'blacklist')
    							{
    								objData = { Blacklist: request.term, code: 'CLIENT', maxRows: 20 };
    							}
    							else
    							{
    								objData = { ville: request.term, code: 'CLIENT', maxRows: 20 };
    							}
    							$.ajax({
    								url: "http://www.monsite.com/AutoCompletion.php",
    								dataType: "json",
    								data: objData,
    								type: 'POST',
    								success: function (data)
    								{
    									//Ajout de reponse dans le cache
    									cache[('CLIENT' + '-' + request.term)] = data;
    									response($.map(data, function (item)
    									{
    
    										return {
    											label: item.Nom + ' - ' + item.CodePostal,
    											value: function ()
    											{
    												if ($(this).attr('id') == 'cp')
    												{
    													$('#id').val('CL0' + item.Id), $('#ville').val(item.Ville), $('#nom').val(item.Nom), $('#adfac').val(item.Adfac), $('#adliv').val(item.Adliv), $('#cp').val(item.CodePostal), $('#mobile').val(item.Mobile), $('#tel').val(item.Tel), $('#fax').val(item.Fax), $('#compte').val(item.Compte), $('#blacklist').val(item.Blacklist), $('#email').val(item.Email);
    													return item.CodePostal;
    												}
    												else if($(this).attr('id') == 'nom')
    												{
    													$('#id').val('CL0' + item.Id), $('#ville').val(item.Ville), $('#nom').val(item.Nom), $('#adfac').val(item.Adfac), $('#adliv').val(item.Adliv), $('#cp').val(item.CodePostal), $('#mobile').val(item.Mobile), $('#tel').val(item.Tel), $('#fax').val(item.Fax), $('#compte').val(item.Compte), $('#blacklist').val(item.Blacklist), $('#email').val(item.Email);
    													return item.Nom;
    												}
    												else if($(this).attr('id') == 'adfac')
    												{
    													$('#id').val('CL0' + item.Id), $('#ville').val(item.Ville), $('#nom').val(item.Nom), $('#adfac').val(item.Adfac), $('#adliv').val(item.Adliv), $('#cp').val(item.CodePostal), $('#mobile').val(item.Mobile), $('#tel').val(item.Tel), $('#fax').val(item.Fax), $('#compte').val(item.Compte), $('#blacklist').val(item.Blacklist), $('#email').val(item.Email);
    													return item.Adfac;
    												}
    												else if($(this).attr('id') == 'adliv')
    												{
    													$('#id').val('CL0' + item.Id), $('#ville').val(item.Ville), $('#nom').val(item.Nom), $('#adfac').val(item.Adfac), $('#adliv').val(item.Adliv), $('#cp').val(item.CodePostal), $('#mobile').val(item.Mobile), $('#tel').val(item.Tel), $('#fax').val(item.Fax), $('#compte').val(item.Compte), $('#blacklist').val(item.Blacklist), $('#email').val(item.Email);
    													return item.Adliv;
    												}
    												else if($(this).attr('id') == 'tel')
    												{
    													$('#id').val('CL0' + item.Id), $('#ville').val(item.Ville), $('#nom').val(item.Nom), $('#adfac').val(item.Adfac), $('#adliv').val(item.Adliv), $('#cp').val(item.CodePostal), $('#mobile').val(item.Mobile), $('#tel').val(item.Tel), $('#fax').val(item.Fax), $('#compte').val(item.Compte), $('#blacklist').val(item.Blacklist), $('#email').val(item.Email);
    													return item.Tel;
    												}
    												else if($(this).attr('id') == 'mobile')
    												{
    													$('#id').val('CL0' + item.Id), $('#ville').val(item.Ville), $('#nom').val(item.Nom), $('#adfac').val(item.Adfac), $('#adliv').val(item.Adliv), $('#cp').val(item.CodePostal), $('#mobile').val(item.Mobile), $('#tel').val(item.Tel), $('#fax').val(item.Fax), $('#compte').val(item.Compte), $('#blacklist').val(item.Blacklist), $('#email').val(item.Email);
    													return item.Mobile;
    												}
    												else if($(this).attr('id') == 'fax')
    												{
    													$('#id').val('CL0' + item.Id), $('#ville').val(item.Ville), $('#nom').val(item.Nom), $('#adfac').val(item.Adfac), $('#adliv').val(item.Adliv), $('#cp').val(item.CodePostal), $('#mobile').val(item.Mobile), $('#tel').val(item.Tel), $('#fax').val(item.Fax), $('#compte').val(item.Compte), $('#blacklist').val(item.Blacklist), $('#email').val(item.Email);
    													return item.Fax;
    												}
    												else if($(this).attr('id') == 'email')
    												{
    													$('#id').val('CL0' + item.Id), $('#ville').val(item.Ville), $('#nom').val(item.Nom), $('#adfac').val(item.Adfac), $('#adliv').val(item.Adliv), $('#cp').val(item.CodePostal), $('#mobile').val(item.Mobile), $('#tel').val(item.Tel), $('#fax').val(item.Fax), $('#compte').val(item.Compte), $('#blacklist').val(item.Blacklist), $('#email').val(item.Email);
    													return item.Email;
    												}
    												else if($(this).attr('id') == 'compte')
    												{
    													$('#id').val('CL0' + item.Id), $('#ville').val(item.Ville), $('#nom').val(item.Nom), $('#adfac').val(item.Adfac), $('#adliv').val(item.Adliv), $('#cp').val(item.CodePostal), $('#mobile').val(item.Mobile), $('#tel').val(item.Tel), $('#fax').val(item.Fax), $('#compte').val(item.Compte), $('#blacklist').val(item.Blacklist), $('#email').val(item.Email);
    													return item.Compte;
    												}
    												else if($(this).attr('id') == 'blacklist')
    												{
    													$('#id').val('CL0' + item.Id), $('#ville').val(item.Ville), $('#nom').val(item.Nom), $('#adfac').val(item.Adfac), $('#adliv').val(item.Adliv), $('#cp').val(item.CodePostal), $('#mobile').val(item.Mobile), $('#tel').val(item.Tel), $('#fax').val(item.Fax), $('#compte').val(item.Compte), $('#blacklist').val(item.Blacklist), $('#email').val(item.Email);
    													return item.Blacklist;
    												}
    												else if($(this).attr('id') == 'ville')
    												{
    													$('#id').val('CL0' + item.Id), $('#ville').val(item.Ville), $('#nom').val(item.Nom), $('#adfac').val(item.Adfac), $('#adliv').val(item.Adliv), $('#cp').val(item.CodePostal), $('#mobile').val(item.Mobile), $('#tel').val(item.Tel), $('#fax').val(item.Fax), $('#compte').val(item.Compte), $('#blacklist').val(item.Blacklist), $('#email').val(item.Email);
    													return item.Ville;
    												}
    												else
    												{
    													$('#nom').val(item.Nom);
    													return item.Nom;
    												}
    											}
    										}
    									}));
    								}
    							});
    						}
    					},
    					minLength: 2,
    					delay: 200
    				});
    			});
    Edit: request.term contient les caractères recherchés mais si l'on modifie sa structure il ne pourra plus interroger la base de donnée.
    je ne vois vraiment pas comment faire ...
     
  20. Secu1000
    Secu1000 Nouveau WRInaute
    Inscrit:
    23 Juin 2014
    Messages:
    17
    J'aime reçus:
    0
    UP please...
     
Chargement...
Similar Threads - Requête AJAX autocomplétion Forum Date
Requête Ajax avec code source visible Développement d'un site Web ou d'une appli mobile 14 Mars 2020
Page d’accueil + sous page sur la même requête Problèmes de référencement spécifiques à vos sites 14 Juillet 2021
Search Console Absence de requêtes dans la search console Problèmes de référencement spécifiques à vos sites 21 Mai 2021
Nettoyage de requètes externes de Google, comment faire? Administration d'un site Web 24 Octobre 2020
encodage texte sur requete mysql Demandes d'avis et de conseils sur vos sites 21 Octobre 2020
Requête MySql imbriquée Développement d'un site Web ou d'une appli mobile 8 Octobre 2020
Comment se placer sur des requêtes inhabituelles dû au confinement Rédaction web et référencement 25 Mars 2020
Déclassement sur requêtes et pays spécifiques? Crawl et indexation Google, sitemaps 11 Janvier 2020
Résultats étranges pour la requête site: Problèmes de référencement spécifiques à vos sites 26 Août 2019
Qwant 20 milliards de requetes en 2018? 2 x plus que Google? Autres moteurs de recherche connus 2 Avril 2019