2016-08-05 29 views
2

json von php senden automatisch zu vervollständigen und Datenattribut in Eingang

[{ 
 
    "sysid": "39", 
 
    "name": "John", 
 
    "code": "060400000" 
 
}] 
 

 

 

 

 

 
$(document).on("input", ".autocomplete", function(event) { 
 
    var name = $(this).prop('id').split('_').pop(); 
 
    $(".autocomplete").autocomplete({ 
 
    source: function(request, response) { 
 
     $.ajax({ 
 
     type: 'POST', 
 
     url: 'autocomplete.php', 
 
     dataType: "json", 
 
     data: { 
 
      keypressed: request.term, 
 
      name: name 
 
     }, 
 
     success: function(data) { 
 
      //response(data); 
 
      response($.map(data, function(item) { 
 
      return { 
 
       name: item.name, 
 
       code: item.code, 
 
       sysid: item.sysid 
 
      }; 
 
      })); 
 
     } 
 
     }); 
 
    }, 
 
    minLength: 2 
 

 
    }); 
 
})

Dies ist mein Beispieldatum

[{ 
    "sysid": "39", 
    "name": "John", 
    "code": "060400000" 
}] 

In meiner Autovervollständigung hinzufügen, wenn ich response(data); in Erfolg und $name[] = ucwords(strtolower($selected_row[$columnename])); in PHP-Seite verwenden alles ist gut, aber ich möchte zusätzliche Informationen für meine Eingabe Text wie Code und sysid hinzufügen .. So tat ich

$name[] = array('sysid' => $selected_row['sys_id'],'name' => ucwords(strtolower($selected_row[$columnename])),'code' => $selected_row[$columnecode]); in PHP und in Erfolg

response($.map(data, function(item) { 
    return { 
     name: item.name, 
     code: item.code, 
     sysid: item.sysid 
    }; 
})); 

Was ich will ist data-code und data-id in Eingang erreichen, fügen Sie nach autocmplete Abschluss.

Ist das möglich? Irgendwelche Ideen

UPDATE

dies unten verwendet, aber die einen Wechsel ist die Drop-Down-Werte, was ich will, ist die Eingabe wie

<input data-id="39" data-code="060400000"> 

response($.map(data, function(item) { 
    return { 
     title: item.name, 
     value: item.name 
    }; 
})); 
+0

Frage: Ist das möglich? A: Ja, F: Irgendwelche Ideen? A: viele – madalinivascu

+0

wie man das Update @madalinivascu –

Antwort

0

Verwenden Sie den Artikel machen sich ändern Funktion

$(".autocomplete").data("ui-autocomplete")._renderItem = function(ul, item) { 
return '<li data-code="'+item.code+'" data-id="'+item.sysid+'">'+item.name+'</li>' 
} 

für weitere Informationen visit

+0

im Erhalten von 'Uncaught TypeError: kann Eigenschaft '_renderItem' von undefined nicht erreichen –