2016-05-23 8 views
0

Der Inhalt wird nicht angezeigt, ist Autocomplate-Liste, wie Sie in Screenshot unten sehen können.Autocomplete-Problem: Inhalt wird nicht angezeigt

Autocomplete Error

Ich erhalte diese Antwort.

[{ "emp_number": 1 "fname": "Arslan", "lname": "Hassan"}, { "emp_number": 2 "fname": "Muneeb", "lname": "Janjua" }, {"emp_number": 3, "fname": "hr", "lname": "Benutzer"}, {"emp_number": 4, "fname": "test", "lname": " „} .......... ENTFERNT IT aussehen lassen hier besser .......]

Mein JS-Code:

$("#search-emp").autocomplete(
{ 
    source: function (request, response) 
    { 
     var form_data = { 
      ajax    : '1', 
      name    : $("#search-emp").val(), 
      actioncall   : 'search-emp' 
     }; 

     $.ajax({ 
      //contentType: "application/json", 
      type: "POST", 
      dataType: 'json', 
      url: "_ajax.php", 
      data: form_data, 
      success: function(data) 
      { 
       response(data); 
      } 
     }); 
    }, 
    minLength:3, 
    select:function(evt, ui) 
    { 
     alert(ui.item.emp_number); 
    } 
}); 

ich möchte angezeigt werden fname und lname auf ausgewählt in input Feld.

+0

können Sie 'console.log (Daten)' 'vor Antwort (Daten)' und fügen Sie in Frage zu stellen, um zu sehen, was den Server reagieren. Die Liste sollte einen Namen oder einen bestimmten Schlüssel für die Felder haben, die angezeigt werden. –

+0

@DanielDudasIch habe eine Antwort auf meine Frage erhalten. Bitte schau es dir jetzt an. – Hassaan

Antwort

1

Das Problem ist, weil jQuery Autocomplete 2 Felder mit den Namen label und value haben möchte. Der Inhalt von label wird in der Autocomplete angezeigt.

Da der Server anderer Name für die Schlüssel zurückgeben haben Sie 2 Möglichkeiten:

  1. Ändern der Server eine Json zurück wie:

    [{"emp_number":1,"fname":"Arslan","lname":"Hassan", "label":"Arslan Hassan", "value": "Arslan Hassan"},....]

  2. Oder auf den Erfolg Rückruf von ajax erzeugt ein Array mit diesen Feldern (label und value) und übergibt dieses Array an response() Callback.

Sie können mehr Informationen finden Sie hier: http://api.jqueryui.com/autocomplete/#option-source

+0

Danke. Ich habe die "json" -Antwort geändert, wie Sie vorschlagen. Es funktionierte nicht, aber nur ein Problem. Ich bekomme nur den Vornamen in das Eingabefeld eingegeben. – Hassaan

+0

@Hassaan Sie müssen den Vornamen mit dem Nachnamen "Label" eingeben, damit beide bei der automatischen Vervollständigung angezeigt werden. –