为啥使用 jQuery 和 PHP 的多项选择自动完成功能不起作用?

Posted

技术标签:

【中文标题】为啥使用 jQuery 和 PHP 的多项选择自动完成功能不起作用?【英文标题】:Why multiple choice autocomplete with jQuery and PHP does not work?为什么使用 jQuery 和 PHP 的多项选择自动完成功能不起作用? 【发布时间】:2012-07-26 04:34:58 【问题描述】:

我想在使用 jQuery、phpmysql 的表单中使用 multiple autocomplete。但这对我不起作用。我有什么错误吗?


HTML 代码:

<input type="text" id="country" name="country" />

jQuery 代码:

$( "#countries" )
        // don't navigate away from the field on tab when selecting an item
        .bind( "keydown", function( event ) 
            if ( event.keyCode === $.ui.keyCode.TAB &&
                $( this ).data( "autocomplete" ).menu.active ) 
                event.preventDefault();
            
        )

        .autocomplete(
            source: function( request, response ) 
                $.getJSON( "process/find_countries.php", 
                    term: extractLast( request.term )
                , response );
            ,
            search: function() 
                // custom minLength
                var term = extractLast( this.value );
                if ( term.length < 2 ) 
                    return false;
                
            ,
            focus: function() 
                // prevent value inserted on focus
                return false;
            ,
            select: function( event, ui ) 
                var terms = split( this.value );
                // remove the current input
                terms.pop();
                // add the selected item
                terms.push( ui.item.value );
                // add placeholder to get the comma-and-space at the end
                terms.push( "" );
                this.value = terms.join( ", " );
                return false;
            
        );  

PHP 代码

    $result = array();
    $term = strtolower($_GET["term"]);
    $sql = "SELECT title FROM tbl_countries WHERE title LIKE ?";
    $q = $db->prepare($sql);
    $q->execute(array('%'.$term.'%'));
    $rows = $q->rowCount();
    echo($rows);
    while ($r = $q->fetch())
    
        array_push($result,array('label'=>$r['title'], 'value'=>$r['title']));
    
    echo json_encode($result);

【问题讨论】:

控制台中显示任何错误? 在 url.. 删除最后一部分并添加 process/find_countries.php 以查看显示的内容 尝试将'lable'=&gt;$r['title'],改为'label'=&gt;$r['title'], 你的意思是 term: extractLast( request.term ) , response 吗? @Engineer 我更正了。但什么也没发生 【参考方案1】:

查看来自服务器的萤火虫响应。以及为什么要做 echo($rows); ?

【讨论】:

以上是关于为啥使用 jQuery 和 PHP 的多项选择自动完成功能不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

blueimp/jQuery-File-Upload - Ipad (ios7) 应用程序上的多项选择

表单数据仅附加最后的多项选择

如何完美对齐 2 个扫描的多项选择纸图像? (Matlab)

如何使用具有不同 where 条件的多项选择获得结果

自定义选择器 C# UWP 上的多项选择

枚举列laravel 8上的多项选择