Als ik u goed begrijp, krijgt u resultaten terug, maar kunt u de invoervelden niet invullen. Hoewel ik geen Twitter Bootstrap typeahead gebruik, doe ik iets vergelijkbaars met de autocomplete-functie van jQuery. De onderstaande code is niet getest en je moet deze natuurlijk zelf aanpassen, maar hopelijk kan het je helpen.
Bekijk deze werkende jsFiddle demo voor iets soortgelijks.
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);
U kunt controleren wat er wordt geretourneerd door handmatig de URL in te voeren (bijv. uwsite/Customer.php?query=SomeContactName). Je zou iets als dit moeten zien:
[{"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>
Hier zijn een paar andere berichten die je misschien wilt bekijken Hoe het antwoord van een AJAX terug te sturen bellen? en Bootstrap typeahead ajax resultaatformaat - voorbeeld