sql >> Database >  >> RDS >> Mysql

Twitter bootstrap typeahead retourneert meerdere waarden en vult de editbox

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




  1. Wat is er aan de hand met MySQL integer field matching string?

  2. Verschil tussen gelezen vastgelegd en herhaalbaar gelezen

  3. SQLiteDatabase Cursor alleen leeg op Android 5.0+ apparaten

  4. ST_Distance_Sphere in mysql geeft geen nauwkeurige afstand tussen twee locaties