【问题标题】:jQuery UI Autocomplete in CodeIgniter displays value instead of labelCodeIgniter 中的 jQuery UI 自动完成显示值而不是标签
【发布时间】:2015-12-26 10:38:50
【问题描述】:

我一直在关注this 教程以在我的表单中创建自动完成功能。我对 codeigniter 和 jquery 还是很陌生。 我的表名是'user_profile' 我想自动完成“comp_person_name”,值应该是“p_u_id”。

这是我的模型

public function get_user($q){
    $this->db->select('comp_person_name,p_u_id');
    $this->db->like('comp_person_name', $q);
    $query = $this->db->get('user_profile');
    if($query->num_rows > 0){
      foreach ($query->result_array() as $row){
        // $row_set[]=htmlentities(stripslashes($row['comp_person_name']));
         $new_row['label']=htmlentities(stripslashes($row['comp_person_name']));
         $new_row['value']=htmlentities(stripslashes($row['p_u_id']));
        $row_set[] = $new_row; //build an array

      }
      echo json_encode($row_set); //format the array into json data
      }
    }

这是我的控制器

 public function get_users(){
        $this->load->model('user_model');
        if (isset($_GET['term'])){
        $q = strtolower($_GET['term']);
        $this->user_model->get_user($q);


            }
        }

这里是函数调用

$("#partners").autocomplete({
    source: "get_users" ,
     minLength: 0
        }).focus(function(){            
            $(this).trigger('keydown.autocomplete');
        });

&html代码

 <div class="form-group">
     <label class="col-sm-2  control-label">Referral partner </label>
      <div class="col-sm-10">                                   
       <input type="text" id="partners"  name="assign_to" placeholder="Search    partner"  class="form-control"  />
      </div>
   </div>

问题是当我按下按键时,它会在下拉列表中显示人员姓名,在输入表单中显示值。我怎样才能在输入框上得到名字。见下图

【问题讨论】:

标签: jquery codeigniter jquery-ui autocomplete jquery-ui-autocomplete


【解决方案1】:

我在this stackoverflow thread的帮助下解决了自己

将 Javascript 编辑为

$("#partners").autocomplete({
             source: "get_users",
             minLength: 2,
        select: function(event, ui) {
            event.preventDefault();
            $("#partners").val(ui.item.label);
            $("#partners-hidden").val(ui.item.value);
            },
        focus: function(event, ui) {
            event.preventDefault();
            $("#partners").val(ui.item.label);
            $("#partners-hidden").val(ui.item.value);
        }
    });

并在html中添加了一个隐藏的输入字段,ID为#partners-hidden,用于存储和提交值

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-11
    • 2021-08-13
    • 1970-01-01
    • 2012-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多