jQuery UI自动完成显示AJAX源的标签和值

 傻瓜老公想你_633 发布于 2023-02-10 13:46

我有AJAX源的jQuery UI自动完成输入,我想显示标签而不是id; 但我的代码显示搜索结果何时返回.我怎样才能展示标签?

PHP:

 $row['bbookname'] . ' ' . $row['bbookschool'],
        'value' => $row['adid']
    );
}
echo json_encode($return);
?>

jQuery的/ AJAX:

$("#BooksSearchInput").autocomplete({
    source: '../Search/BP_Books_Search.php',
    minLength: 1,
    autoFocus: false,
    select: function(event, ui) {
        var SearchBookVal = (ui.item.value)
        $.ajax({
            type: "POST",
            data: {
                data: SearchBookVal
            },
            url: "../php/SearchBooks_results.php"
        }).done(function(feedback) {
            $('#booksads').html(feedback)
        });
    }
});

请注意,我确实需要adid在JavaScript回调中提供,因为我使用它来引用结果.

1 个回答
  • 你的代码中有一些错误.

    首先,PHP脚本中的以下行:

    $return = array(...)
    

    表示返回变量将在每次迭代时被覆盖,结果将始终是包含一个项目的数组(或者null如果找不到匹配的行,则为PHP警告和字符串).修理:

    $return = array();
    while ($row = mysql_fetch_array($query)) {
        $return[] = array(
            "label" => $row["bbookname"] . " " . $row["bbookschool"],
            "value" => $row["adid"],
            // you can add additional keys without causing problems
            "feedback" => $row["feedback"]
        );
    }
    echo json_encode($return);
    

    其次,要显示在文本框中可以使用代码标签onFocus,并onSelect从这样的回答:

    // ...
    focus: function (event, ui) {
        event.preventDefault();
        $(this).val(ui.item.label);
    },
    select: function (event, ui) {
        event.preventDefault();
        $(this).val(ui.item.label);
        $("#booksads").html(ui.item.feedback);
    }
    // ...
    

    2023-02-10 13:48 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有