在数组中引入多个变量

时间:2015-10-19 16:51:40

标签: javascript php ajax pdo

即时通讯使用自动完成(php,ajax)在线提供,但由于我不熟悉,因此我希望能帮助我做错误。

基本上我有一个输入字段,用户可以通过邮政编码或城镇名称搜索,但我需要在标签名称中始终显示城镇的名称,但$ results变量带来的数组始终是一列数据

这是我的代码:

自动complete.php:

function serachForKeyword($keyword) {

    $db = getDbConnection();
    $stmt = $db->prepare("SELECT  postcode, town FROM `uk_postcodes` WHERE postcode LIKE ? ORDER BY town");

    $keyword = $keyword . '%';
    $stmt->bindParam(1, $keyword, PDO::PARAM_STR, 100);

    $isQueryOk = $stmt->execute();

    $results = array();

    if ($isQueryOk) {
      $results = $stmt->fetchAll(PDO::FETCH_COLUMN);
    } else {

      trigger_error('Error executing statement.', E_USER_ERROR);
    }

    $db = null; 

    return $results;
}

autocomplete.js:

var MIN_LENGTH = 2;

$( document ).ready(function() {
    $("#keyword").keyup(function() {
        var keyword = $("#keyword").val();
        if (keyword.length >= MIN_LENGTH) {

            $.get( "auto-complete.php", { keyword: keyword } )
            .done(function( data ) {
                $('#results').html('');
                var results = jQuery.parseJSON(data);
                console.log(results);
                $(results).each(function(key, value) {
                    $('#results').append('<div class="item">' + value + '</div>');
                })

                $('.item').click(function() {
                    var text = $(this).html();
                    $('#keyword').val(text);
                })

            });
        } else {
            $('#results').html('');
        }
    });

    $("#keyword").blur(function(){
            $("#results").fadeOut(500);
        })
        .focus(function() {     
            $("#results").show();
        });

});

0 个答案:

没有答案
相关问题