在基于代码点火器的活动记录结果()上实现;


Implode on codeigniter based active record result();

我有一个模型返回了这样的对象:

型号

public function getAllNama() {
    $this->db->select('nama');
    $query = $this->db->get('tbl_user');
    return $query->result();
}

控制器

$data['users'] = $this->model_user->getAllNama();
$this->load->view('it_team/view_manual_entry', $data);

鉴于此,我在html上操作它有一个问题。在我的例子中,我使用了像这样的基于自动完成的jquery

<input id="data_user"type="text" data-provide="typeahead" data-items="4" 
    data-source='[<?=  ?>]'
    ">

也就是说,在矩阵中,data-source有一个类似于这样的字符串格式:data-source="["nama1", "nama2"]"

因此,基于此,

foreach(users as user){
   echo $user->nama; 
}

哪个是print user1user2,我如何用合适的字符串格式将其传递给数据源?

我知道内爆,但我尝试了很多方法,但仍然没有成功。非常感谢任何解决方案。。感谢

试试这个:

 <?php
    $names = '';
    foreach($users as $user){
       $names .= '"'.$user->nama.'",'; 
    }
    $names = trim($names, ','); ?>
    <input id="data_user"type="text" data-provide="typeahead" data-items="4" 
        data-source='[<?php echo $names;?>]'>

无需所有这些,您所要做的就是在控制器中清理它,如您所述使用implode,然后将它发送到您的视图,如下所示:

控制器:

public function getNamas(){
    $namas = $this->my_model->getAllNama();
    foreach ($namas as &$nama) {
        $nama = "'$nama->nama'";
    }
    $data['users'] = implode(",", $namas);
    $this->load->view('it_team/view_manual_entry', $data);
}

视图:

<input id="data_user"
       type="text"
       data-provide="typeahead"
       data-items="4"
       data-source="[<?= $users ?>]"
>