2016-03-21 13 views
0

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 

} 

Antwort

0

In Ihrem Ajax-Erfolg, das ist, was Sie brauchen

var dataArray = []; 
for(var k = 0; k < data.length; k++) { 
    // Add items to array 
    dataArray.push(data[k].c_first_name + " " + data[k].c_last_name); 
} 

response(dataArray); 
+0

Dieser arbeitete wie ein Charme. Ich habe gerade date.push vermisst. Ich wusste nicht, dass Javascript Push-Referenz verfügbar war. –

Verwandte Themen