2011-11-21 5 views
0

Bonjour à tous j'ai vu toutes les questions liées à ce problème, mais n'a pas pu trouver la solution. Je travaille avec jquery ui autocomplete. Mon scénario est le suivant:jquery ui autocomplete ne fonctionne pas exactement

J'ai une case à cocher. Lorsqu'elle est cochée, une requête ajax est envoyée au serveur qui récupère des informations de la base de données et renvoie les données de codage json. Sur la fonction de succès, j'appelle la saisie semi-automatique jquery et dans la source je fournis les données retournées par ma requête ajax. Quand je commence à écrire quelque chose dans ma zone de texte, (je peux voir dans l'onglet console Firebug) une demande get est envoyée avoir toutes mes options qui sont de retour de demande ajax comme ce

http://localhost/project/module/controller/index/%5B%22Mobile%22,%22Watch%22,%22Lamps%22,%22Harry%20Potter%22,%22Suitcase%22,%22Halloween%22,%22Xmas%22,%22Multiple%22,%22oil%22,%22Empty%20Keywords%22,%22iphone%20theme%22,%22Edit%20theme%22,%22Final%20Theme%22%5D?term=mo 

et rien ne se passe. Il n'y a aucune option affichée comme auto complète. Mon code est le suivant

<input type="checkbox" name="prebuilt-Themes" id="prebuilt-Themes" onclick="get_all_themes();"> 

boîte de texte

<input type="text" id="themes" style="display: none;" class="ui-autocomplete-input"> 

Et la fonction qui gère la demande ajax

function get_all_themes() 
{ 

    if($("#prebuilt-Themes").is(':checked')) 
    {  
    $('#themes').show(); 
    $.ajax({ 
      type:'POST', 
      //data:({string:'abc'}), 
      url: "<?= $this->baseUrl(); ?>/module/controller/getallthemes", 
      success:function(data) 
      { 
       $(function() { 
       $("#themes").autocomplete({ 
        source: data 

         }); 
       }); 
      } 
     }); 
    } 


} 

Les données que je reçois de ma demande Ajax ressemble à ceci

["Mobile","Watch","Lamps","Harry Potter","Suitcase","Halloween","Xmas","Multiple","oil","Empty Keywords","iphone theme","Edit theme","Final Theme"] 

Peut-on Votre corps guide-t-il ce que je fais mal?

Répondre

1

Vous devez faire la réponse ajax au format JSON avec identifiant, l'étiquette et la valeur comme ceci:

[ { "id": "Luscinia svecica", "label": "Bluethroat", "value": "Bluethroat" }, { "id": "Motacilla flava", "label": "Blue-headed Wagtail", "value": "Blue-headed Wagtail" }, { "id": "Cyanistes caeruleus", "label": "Blue Tit", "value": "Blue Tit" }, { "id": "Monticola solitarius", "label": "Blue Rock Thrush", "value": "Blue Rock Thrush" }, { "id": "Anas discors", "label": "Blue-winged Teal", "value": "Blue-winged Teal" }, { "id": "Merops persicus", "label": "Blue-cheeked Bee-eater", "value": "Blue-cheeked Bee-eater" }, { "id": "Tarsiger cyanurus", "label": "Red-flanked Bluetail", "value": "Red-flanked Bluetail" } ]