/ / jQuery ajax issue - nemôže dostať moju funkciu do práce - jquery, ajax

jQuery ajax problém - nemôže dostať svoju funkciu do práce - jquery, ajax

Pokúšam sa prispôsobiť doplnok automatického doplňovania pre jquery. To by malo byť veľmi jednoduché.

Je potrebné vytiahnuť zoznam mienautocomplete.php a potom poslať na "vyhľadávanie". Funguje to, keď ju píšem manuálne, ale keď sa pokúsim získať mená s funkciou getnames (), nefunguje. Vrátim dáta správne? Súbor php funguje rovnako.

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);
?>

odpovede:

1 pre odpoveď č. 1

Máte prvé mená a počkajte na odpoveď ajax. Keď príde, musíte spustiť automatické dopĺňanie.

Napr. (Nevyskúšané):

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 pre odpoveď č. 2

Skúste to:

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