Codeigniter自动建议文本框

时间:2016-08-30 06:01:51

标签: codeigniter autosuggest

我在我的项目中使用了codeigniter,并希望实现一个文本框,用于建议数据库中的相关单词。在这一个我想获得所选车辆的ID。但到目前为止,我只能检测出没有ID的车辆名称。

到目前为止的代码,

模型

function searchVehicle($name){
        $this->db->like('Name', $name, 'both');
        return $this->db->get('vw_vehicle_search')->result();
    } 

控制器

public function vehicle_search(){
        $this->load->model('model_vehicle');
        if(isset($_GET['term'])){
            $result = $this->model_vehicle->searchVehicle($_GET['term']);
            if(count($result)>0){
                foreach($result as $object)
                    $arr_result[] = $object->Name;

                echo json_encode($arr_result);
            }
        }
    }

查看

<script type="text/javascript">
            $(document).ready(function(){
                $('#vehicle_name').autocomplete({
                    source: "<?php echo base_url();?>vehicle/vehicle_search/?"
                });
            });
        </script>

    <div class="col-md-4">
        <?php
        $input_data = array(
        'name'  => 'vehicle_name',
        'id' => 'vehicle_name',
        'class' => 'form-control'
        );
        echo form_input($input_data)?>
    </div>

当我选择要插入数据库的车辆时,如何通过此车辆的ID传递并获取ID。 谢谢。

1 个答案:

答案 0 :(得分:0)

以这种方式尝试:

控制器:

public function vehicle_search(){
    $this->load->model('model_vehicle');
    if(isset($_GET['term'])){
        $result = $this->model_vehicle->searchVehicle($_GET['term']);
        if(count($result)>0){
            foreach($result as $object)
                $arr_result[] = array( 'label' => $object->Name, 'value' => $object->id);

            echo json_encode($arr_result);
        }
    }
}

查看:

$(document).ready(function(){
    $('#vehicle_name').autocomplete({
        source: "<?php echo base_url();?>vehicle/vehicle_search/?",
        select: function(event, ui) {
            event.preventDefault();
            $("#vehicle_name").val(ui.item.label);
            //$("#vehicle_name-hidden").val(ui.item.value);
        },
        focus: function(event, ui) {
            event.preventDefault();
            $("#vehicle_name").val(ui.item.label);
        }
    });
});