Jika saya memahami Anda dengan benar, Anda mendapatkan hasil kembali tetapi tidak dapat mengisi bidang input. Meskipun saya tidak menggunakan Twitter Bootstrap typeahead, saya melakukan sesuatu yang sangat mirip dengan fitur pelengkapan otomatis jQuery. Kode di bawah ini belum diuji dan tentu saja Anda perlu memodifikasinya sendiri, tetapi semoga bisa membantu.
Lihat jsFiddle ini demo untuk sesuatu yang serupa.
PHP
$array = array();
while ($row = mysql_fetch_assoc($sql)) {
array_push($array,array('ContactName'=>$row['ContactName'],'Telephone'=>$row['Telephone'],'Email'=>$row['Email']));
}
echo json_encode($array);
Anda dapat memeriksa apa yang dikembalikan dengan memasukkan URL secara manual (mis:yoursite/Customer.php?query=SomeContactName). Anda akan melihat sesuatu yang mirip dengan ini:
[{"ContactName":"Some Contact","Telephone":"5555555555","Email":"[email protected]"},
{"ContactName":"Some Other Contact","Telephone":"5555555555","Email":"[email protected]"}]
HTML/Javascript
<script>
$('input.typeahead').typeahead({
source: function (query, process) {
$.ajax({
url: 'Customer.php',
type: 'POST',
dataType: 'JSON',
// data: 'query=' + query,
data: 'query=' + $('#contactName').val(),
success: function(data)
{
var results = data.map(function(item) {
var someItem = { contactname: item.ContactName, telephone: item.Telephone, email: item.Email };
return JSON.stringify(someItem.contactname);
});
return process(results);
}
});
},
minLength: 1,
updater: function(item) {
// This may need some tweaks as it has not been tested
var obj = JSON.parse(item);
return item;
}
});
</script>
Berikut adalah beberapa posting lain yang mungkin ingin Anda lihat di Cara mengembalikan respons dari AJAX telepon? dan Bootstrap typeahead ajax result format - Contoh