Ich versuche, jQuery Autocomplete mit Java-Server-Seite verwenden. Ich habe ein Formular namens Kontaktinfo, das zwei Felder namens Vorname und Nachname hat. Wenn Sie in den Kontaktinformationen auf Speichern klicken, werden der Vor- und der Nachname in der Spalte c_first_name und c_last_name gespeichert. Derzeit gibt der JSON zurück: [{"c_first_name": "Reur", "c_last_name": "Raman"}, {"c_first_name": "John", "c_last_name": "Joon"}]. Hier ist meine Ajax-Funktion:JQuery Autovervollständigung mit Java, um mehrere JSON-Wert zu verwenden
function caseIlete() {
jQuery(document).ready(function() {
jQuery(function() {
jQuery("#Cant, #Caseorney, #CaseInput_employer, #Caney").autocomplete({
// source: [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby" ]
source : function (request, response) {
jQuery.ajax({
url : "page.request.do?page=page.ajax.autocomplete",
type : "GET",
data : {
term : request.term
},
dataType : "json",
success : function(data) {
data = data[0].c_first_name + " " + data[0].c_last_name;
var dataArray = [data];
response(dataArray);
}
});
}
});
});
});
Hier ist meine Java-Controller-Datei:
public class Controller implements Pler {
public Response execute(Pagxt t) throws ApplicationException {
TextResponse tr = t.createTextResponse();
tr.setContentType("application/json");
try {
String term = t.getPeters().getSingle("term");
String sqlJson = t.ceSQL("Select c_first_name from t_coct").fetchJSON();
tr.put("aadata", sqlJson);
}catch (Exception e) {
e.printStackTrace();
}
return tr;
}
}
Wohlgemerkt, dass die Json Liste wird wachsen, wie wir mehr Menschen in dem Kontakt-Formular eingeben. Derzeit, damit es funktioniert, zeige ich die Daten an:
data = data[0].c_fiame + " " + data[0].c_le;
Welches ist der erste Datensatz auf der SQL-Datenbank. Ich möchte in der Lage sein, beide Datensätze, die in SQL verfügbar sind, wie Reazur Rahman und John Johnson, automatisch zu füllen. Viele Online-Beispiele haben so etwas wie Antworten (Daten) gemacht und das hat bei mir überhaupt nicht funktioniert. Ich musste Antwort als dataArray zurückgeben. Ich habe auch versucht:
for (var i = 0; i < data.length; i++) {
data = data[i].c_firme + data[i].c_l_name //Also just returns Reazur Rahman
}
Dieser arbeitete wie ein Charme. Ich habe gerade date.push vermisst. Ich wusste nicht, dass Javascript Push-Referenz verfügbar war. –