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 :
J'ai essayé pas mal de solution mais impossible de m'en sortir, j'espère que vous pourrez m'aider.
Merci
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