Ако съм ви разбрал правилно, вие получавате резултати, но не можете да попълните полетата за въвеждане. Въпреки че не използвам Twitter Bootstrap typeahead, правя нещо много подобно с функцията за автоматично довършване на jQuery. Кодът по-долу не е тестван и, разбира се, ще трябва да го модифицирате сами, но се надяваме, че ще ви помогне.
Вижте тази работеща демо на jsFiddle за нещо подобно.
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);
Можете да проверите какво се връща, като въведете ръчно URL адреса (напр. yoursite/Customer.php?query=SomeContactName). Трябва да видите нещо подобно на това:
[{"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>
Ето няколко други публикации, които може да искате да разгледате Как да върнете отговора от AJAX обаждане? и Bootstrap typeahead ajax резултатен формат - Пример