2010-11-19 9 views
1

J'utilise le plugin .autocomplete de jQuery, et j'apprécierais de vous aider à formuler les résultats qui s'affichent dans le menu déroulant qui s'affiche lorsque du texte est écrit dans le champ de saisie.Comment utiliser les options formatItem, formatMatch et formatResult de jQuery pour .autocomplete?

Afin d'obtenir les données pour remplir la saisie semi-automatique, je tire de mySQL en utilisant ce PHP:

$sql = ('SELECT tag, title, author, content, id FROM labels'); 
$result = mysql_query($sql); 
$Response = array(); 
while($row = mysql_fetch_object($result)){ 
$Response[] = array(
          "id" => $row->id, 
          "name" => $row->tag . ": " . $row->title . ": " . $row->content ."" 
         ); 
} 

Lorsqu'un utilisateur sélectionne l'option de la saisie semi-automatique qui est le mieux pour eux, je convertir le « nom "ci-dessus dans le" id "en utilisant cette méthode: var AllTagData =; var Balises = [];

for(var i in AllTagData){ 
    Tags.push(AllTagData[i].name); 
    } 

    function getIdFromTag(_name){ 
     for(var i in AllTagData){ 
      if(_name == AllTagData[i].name){ 
       return AllTagData[i].id; 
      } 
     } 
    } 

Jusqu'ici, tout va bien. Enfin, j'utilise le plugin jQuery autocomplete pour sortir les données pour l'utilisateur:

$(document).ready(function(){ 
    $("#Responses").autocomplete({ 
     source: Tags, 
     matchContains: true, 
     autoFill: true, 
     select: function(e, ui){ 
      $("#hidden_tags").val(getIdFromTags($("#Responses").val())); 
      }}); 
}); 

Cette dernière partie du code est là que je besoin d'aide pour la mise en œuvre des options formatItem, formatMatch et formatResult. De la PHP donnée ci-dessus, je produis des balises, titre, et le contenu tout dans le "nom". La façon dont je voudrais formater mes options de saisie semi-automatique pour l'utilisateur est

  • Afficher les mots clés & Titre
  • Contenu Masquer
  • Recherche par mots clés, titre et contenu des correspondances possibles

Par conséquent, même si je souhaite que la saisie semi-automatique effectue une recherche dans le contenu, je ne souhaite pas que le contenu apparaisse dans la liste d'auto-complétion remplie. Je veux seulement que les balises et le titre s'affichent.

J'ai eu beaucoup de problèmes avec cela et j'ai cherché assez largement pour trouver une réponse et j'apprécierais vraiment toute aide que vous pouvez donner sur la façon d'accomplir cela. S'il vous plaît poser des questions de suivi si vous avez besoin de plus amples explications. Merci!

Répondre

0

Je pense que vous utilisez une autre version du plug-in, mais si vous regardez celui-ci:

http://code.google.com/p/jquery-autocomplete/

Vous trouverez un fichier index.html avec les exemples que vous demandez, par exemple :

showResult: function(value, data) { 
    return '<span style="color:red">' + value + '</span>'; 
}, 

Bonne chance!

Questions connexes