JQuery Autocomplete将所有结果返回到一个字符串中

时间:2017-02-15 13:43:54

标签: javascript php jquery autocomplete

我目前正在为我的一个表单中的文本输入创建一个jQuery自动完成功能。我现在正在使用Codeigniter。

这是我的模型代码

function get_names()
{
    $query = $this->db->query("SELECT CONCAT(tbl_applicant.fname, ' ', tbl_applicant.lname) AS name FROM tbl_applicant INNER JOIN tbl_employee ON tbl_employee.apid=tbl_applicant.apid INNER JOIN tbl_account ON tbl_account.acc_id=tbl_employee.acc_id WHERE tbl_account.acc_description LIKE '%Agent%' AND tbl_employee.isActive LIKE '%yes%'");
    return $query->result();

}

这是我的控制器

public function index()
{
    if($this->session->userdata('uid'))
    {
        $data['kudos'] = $this->KudosModel->get_kudos();
        $data['acc'] = $this->KudosModel->get_accounts();
        $data['name'] = $this->KudosModel->get_names();
        $this->load->view('kudoslist',$data);
    }
    else
    {
        redirect('index.php/login');
    }
}

这是我的JavaScript / jQuery

$(function(){
var names="";
"use strict";
     var obj = JSON.parse(<?php echo "'".json_encode($name)."'"; ?>);
    $.each( obj, function( key, value ) {
          names += ',"'+value.name+'"';
    });
     // names += "]";
      var all = [names];
      console.log(all);
               $("#addAmbassadorName2").autocomplete({source: all});
});

现在它显示了这些数据 here is the image

希望你能帮助我。谢谢!

2 个答案:

答案 0 :(得分:1)

根据现有代码,您可以创建字符串Vector2 start = new Vector2(10, 10); Vector2 end = new Vector2(100,100); ShapeRenderer shapeRenderer=new ShapeRenderer(); shapeRenderer.setProjectionMatrix(cam.combined); shapeRenderer.begin(ShapeRenderer.ShapeType.Line); shapeRenderer.setColor(Color.BLACK); shapeRenderer.line(start, end); shapeRenderer.end(); 。根据您的理解,您需要创建一个数组,以便可以使用.map()

names += ',"'+value.name+'"';

答案 1 :(得分:0)

如果您希望它是一个数组,请尝试更改您自己的代码:

&#13;
&#13;
$(function() {
  var names = [];
  "use strict";
  var obj = JSON.parse( <? php echo "'".json_encode($name).
    "'"; ?> );
  $.each(obj, function(key, value) {
    names.push(value.name);
  });
  // names += "]";
  
  console.log(all);
  $("#addAmbassadorName2").autocomplete({
    source: names
  });
});
&#13;
&#13;
&#13;

如果您想要一种简单的方法,请尝试:

var all = obj.map(function (value) {
    return value.name;
});