0

基本上我得到了一个 PHP 文件,它返回一个不同结果的数组(PHP 发送数组并且接收良好)。现在我希望 JQuery 自动完成仅按字段“名称”而不是其他字段搜索,并且它仅在建议结果时显示字段“名称”。但是一旦被选中,我希望它将所有结果数组放入页面中。

目前它正在显示所有在建议的搜索中拉出所有数组并且只在 HTML 中放入“名称”的内容。

我想我要做的是捕获 JQ 中的变量,然后只搜索名称

任何人都可以帮助我吗?谢谢你

PHP(工作)

                foreach ($this->get_charities() as $r){

                         $return = array (  'Name' => $r['Name'],
                                            'Contact' => $r['Contact'],
                                            'Postcode' => $r['Postcode'],
                                            'Phone' => $r['Phone'],
                                            'Fax' => $r['Fax'],
                                            'Website' => $r['Website'],                             
                                            'Email' => $r['Email'],
                                        );
                }

        return json_encode($return);    

JS

  <script>
        $(function() {
            function log( message ) {
                $( "<div>" ).text( message ).prependTo( "#log" );
                $( "#log" ).scrollTop( 0 );
            }

            $( "#birds" ).autocomplete({
                source: "search.php",
                minLength: 2,
                select: function( event, ui ) {
                    log( ui.item ?
                        "Selected: " + ui.item.value + " aka " + ui.item.id :
                        "Nothing selected, input was " + this.value );
                }
            });
        });
        </script>
4

1 回答 1

0

您需要在 php 中设置数组,如下所示

$return = array (  
    'value'=> $r['Name'],
    'label'=> $r['Name'],
    'Contact' => $r['Contact'],
    'Postcode' => $r['Postcode'],
    'Phone' => $r['Phone'],
    'Fax' => $r['Fax'],
    'Website' => $r['Website'],                             
    'Email' => $r['Email'],
);

现在,自动完成仅搜索名称值,您还可以将自定义值放入选择功能

$( "#birds" ).autocomplete({
    source: "search.php",
    minLength: 2,
    select: function( event, ui ) {
            alert(ui.item.Phone);   <-- here you can get all your custom values.
        alert(ui.item.Contact); <-- here you can get all your custom values.

        log( ui.item ?
            "Selected: " + ui.item.value + " aka " + ui.item.id :
            "Nothing selected, input was " + this.value );
    }
});
于 2012-10-09T09:42:12.680 回答