【问题标题】:autocomplete label not displaying data自动完成标签不显示数据
【发布时间】:2019-04-03 05:08:33
【问题描述】:

我正在尝试使用下面给出的脚本自动完成 MySQL 数据库中的数据。在开发者工具网络中给出正确响应时不显示标签。

JS

$('#search').autocomplete({
            source: function( request, response ) {
                $.ajax({
                    url: 'search.php',
                    dataType: "json",
                    method: 'post',
                    data: {
                        name_startsWith: request.term,
                        type: 'type'
                    },
                    success: function( data ) {
                        response( $.map( data, function( item ) {
                                return {
                                    label: code['id'],
                                    value: code['id'],
                                    data : item
                                }
                            }));
                        }
                    });
            },
            autoFocus: true,            
            minLength: 1,
            select: function( event, ui ) {
                $('#player').val(ui.item.data.player);
                $('#marks').val(ui.item.data.marks);
            }               
        });  

search.php

$type = $_POST['type'];
$id = $_POST['name_startsWith'];
$query = $db->prepare("SELECT id, player, marks, note FROM players where ( id LIKE '".$id."%') ");
$query->execute();
$data = array();

$i = 0;
while ($row = $query->fetch(PDO:: FETCH_ASSOC)) {

    $data[$i]['id'] = $row['id'];
    $data[$i]['player'] = $row['player'];
    $data[$i]['marks'] = $row['marks'];
++$i;
}  
echo json_encode($data);

网络响应

[{"id":"4133","player":"Sam","marks":"65"},{"id":"4955","player":"valiu","marks":"34"}]

【问题讨论】:

    标签: javascript php jquery autocomplete


    【解决方案1】:

    替换这个:

     return {
         label: code['id'],
          value: code['id'],
          data : item
     }
    

    与:

    return {
         label: item['id'],
          value: item['id'],
          data : item
     }
    

    你传递了错误的参数。

    同样来自 fiddle,更新这些然后测试

    将网址更改为url: 'https://jqueryui.com/resources/demos/autocomplete/search.php?term=ro' 并将dataType更改为dataType: "jsonp"

    然后测试

    【讨论】:

    • 您希望在键入时自动完成显示哪个标签?
    • 它仍然无法正常工作。你能用这个fiddle 让它工作吗?
    • 我想要标签中的玩家 ID id
    • 在小提琴中添加带有外部服务器 url 的 search.php,因为直接调用 search.php 不适用于 ajax。
    • 使用 jqueryui.com/resources/demos/autocomplete/search.php?term=ro 作为外部服务器 URL。这个fiddle 还是不行。
    猜你喜欢
    • 2017-08-12
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    • 2018-01-15
    • 2013-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多