/ / jQuery Ajax-Problem - kann meine Funktion nicht zum Funktionieren bringen - jquery, ajax

jQuery ajax issue - kann meine Funktion nicht zum funktionieren bringen - jquery, ajax

Ich versuche, ein Autocomplete-Plugin für jQuery anzupassen. Dies sollte sehr einfach sein.

Es soll die Liste der Namen aus ziehenautocomplete.php und dann an "Lookup" senden. Es funktioniert, wenn ich es manuell austippe, aber wenn ich versuche, die Namen mit der Funktion getnames () zu bekommen, funktioniert es nicht. Bringe ich die Daten korrekt zurück? Die php-Datei funktioniert auch.

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

Antworten:

1 für die Antwort № 1

Sie haben die Namen zuerst und warten auf die Ajax-Antwort. Wenn es ankommt, müssen Sie die Autovervollständigung starten.

Z.B. (ungetestet):

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 für die Antwort № 2

Versuche dies:

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