/ / problem z jQuery ajax - nie mogę uruchomić mojej funkcji - jquery, ajax

Problem z jQuery ajax - nie mogę uruchomić mojej funkcji - jquery, ajax

Próbuję dostosować wtyczkę autouzupełniania dla jquery. To powinno być bardzo proste.

Ma wyciągnąć listę nazwiskautocomplete.php, a następnie wysłać do "wyszukiwania". Działa, gdy wpisuję go ręcznie, ale kiedy próbuję uzyskać nazwy z funkcją getnames () to nie działa. Czy zwracam dane poprawnie? Plik php działa również.

var options, a;

function getnames() {
$.ajax({
type:"POST",
dataType:"json",
data:{ },
url:"autocomplete.php",
timeout:1000,
success:function (data) {
return data;
}
});
}

// Doesn"t work:

// DOC READY
$("#members").one("click", function () {
options = {
lookup:getnames()
};
a = $("#members").autocomplete(options);
});

// Works:

// DOC READY
$("#members").one("click", function () {
options = {
lookup:["name1","name2"]
};
a = $("#members").autocomplete(options);
});

autocomplete.php

<?
header("Content-Type: application/json", true);
$info = array("name1","name2");
echo json_encode($info);
?>

Odpowiedzi:

1 dla odpowiedzi № 1

Najpierw uzyskałeś nazwy i poczekaj na odpowiedź ajax. Kiedy nadejdzie, musisz rozpocząć autouzupełnianie.

Na przykład. (untested):

function getnames() {
$.ajax({
type:"POST",
dataType:"json",
data:{ },
url:"autocomplete.php",
timeout:1000,
success:function (data) {
options = {
lookup:data
};
a = $("#members").autocomplete(options);
}
});
}

$("#members").one("click", function () {
getnames();
}

-1 dla odpowiedzi № 2

Spróbuj tego:

 function getnames() {
var myData;
$.ajax({
type:"POST",
dataType:"json",
data:{ },
url:"autocomplete.php",
timeout:1000,
success:function (data) {
myData = data;
}
});
return myData;
}