2016-04-16 6 views
1

Ich versuche, Xeditable Plugin select2 mit Emote Daten holen aus meiner Datenbank zu implementieren, meine Daten holen Skript gibt die JSON-Daten zurück, aber der Ajax-Aufruf ruft es nicht ab. mein Code sieht wie folgt aus: HTML von IDxeditable select2 remote Daten holen in ein Auswahlfeld

Javascript gefunden

$('#username ').editable({ 
    type: 'select2', 
    url: '../payments/person.php',  
    pk: 1,  
    onblur: 'submit', 
    emptytext: 'None', 
    select2: { 
       placeholder: 'Select a Requester', 
       allowClear: true, 
       width: '230px', 
       minimumInputLength: 3, 
       id: function (e) { 
        return e.person_id; 
       }, 
       ajax: { 
        url: '../payments/person.php', 
        dataType: 'json', 
        data: function (term, page) { 
         return { query: term }; 
        }, 
        results: function (data, page) { 
         return { results: data }; 
        } 
       }, 
       formatResult: function (employee) { 
        return employee.name; 
       }, 
       formatSelection: function (employee) { 
        return employee.name; 
       }, 
       initSelection: function (element, callback) { 
        return $.get('../payments/person.php', { query: element.val() }, function (data) { 
         callback(data); 
        }, 'json'); //added dataType 
       } 
      } 
}); 

Php Code wie unten die Daten im JSON-Format zurückgibt:

[{"id":"1","name":"AdminAdmin"}] 

Ich bin mein Ajax-Code sicher ist Ich sammle die Daten nicht richtig, und wenn ich darauf klicke, wird auch das Popup nicht geladen. wenn jemand helfen könnte.

mein PHP-Code für aussehen wie das Abrufen folgend:

if (isset($_POST['person_id'])) { 
    $id = trim($_POST['person_id']); 
    $result = array(); 
    $id = mysqli_real_escape_string($con,$id); 
    $res = mysqli_query($con,"SELECT person_id,Concat(first_name ,last_name) as name FROM k_people "); 
while ($row = mysqli_fetch_array($res)) { 

$result[] = array(
    'id' => $row['person_id'], 
    'text' => $row['name'] 
); 

} 
echo json_encode($result); 

}

Antwort

0

Ich denke [{"id":"1","name":"AdminAdmin"}][{"id":"1","text":"AdminAdmin"}] sein sollte.

+0

hey kevin, der Name speichert das Ergebnis einer Select-Anweisung mit einem Concat (Vorname, Nachname) – phpnewbie

+0

Aber select2 erwartet, dass Optionen "id" - und "text" -Attribute haben. Kannst du "Name" in "Text" umbenennen? Welche Version von select2 ist das? – programmerKev

+0

Ich habe es in Text umbenannt und in meinem Netzwerk-Tab von Firefox habe ich überprüft, die Registerkarte Param - Keine Parameter für diese Anfrage. Antwort von person.php ist 200 – phpnewbie