Question

J'utilise le plug-in de saisie automatique de jQuery pour un simple formulaire de recherche. Je ne parviens pas à convertir mes données d'objet JSON en un tableau à utiliser avec l'auto-complétion.

Mon code:

var listOfOrderedByNames = getAutocompleteData();
$('#OrderedBy').autocomplete(listOfOrderedByNames);

function getAutocompleteData() {
    var output;
    $.getJSON('AJAX/GetOrderedByNames', function(data) {
        $.each(data, function(index, optionData) {
            output += optionData + "|";
        });
    });
    return output;
}

Les données JSON renvoyées ressemblent à ceci:

    ["Jimmy","John", "Etc",null]

Pour une raison quelconque, il semble que ce que je récupère de cette fonction getAutocompleteData est une chaîne vide et je ne sais pas ce qui ne va pas.

S'il vous plaît, aidez!

Était-ce utile?

La solution

C'est parce que $. getJSON est asynchrone. Dès que vous envoyez la demande, votre fonction getAutocompleteData () continue de s'exécuter, ne renvoyant rien.

Vous devez inclure tout dans la fonction de rappel que vous passez à la méthode getJSON:

var output;
$.getJSON('AJAX/GetOrderedByNames', function(data) {
    var output = "";
    $.each(data, function(index, optionData) {
        output += optionData + "|";
    });
    $('#OrderedBy').autocomplete(output);
});

Autres conseils

Essayez de modifier la ligne var output; en var output = '';

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top