Om jag förstår dig rätt får du resultat tillbaka men kan inte fylla i inmatningsfälten. Även om jag inte använder Twitter Bootstrap typahead gör jag något mycket liknande med jQuerys autokompletteringsfunktion. Koden nedan är opestad och naturligtvis måste du modifiera den själv men förhoppningsvis kommer den att vara till någon hjälp.
Se denna fungerande jsFiddle demon för något liknande.
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);
Du kan kontrollera vad som returneras genom att manuellt ange URL:en (ex:yoursite/Customer.php?query=SomeContactName). Du bör se något liknande detta:
[{"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>
Här är ett par andra inlägg som du kanske vill ta en titt på Hur du returnerar svaret från en AJAX ringa? och Bootstrap typeahead ajax resultatformat – Exempel