基于codeigniter的活动记录结果内爆();

时间:2015-11-16 12:37:08

标签: php codeigniter

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

MODEL

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,如何在具有合适字符串格式的数据源上传递它?

我知道内爆,但我尝试了很多方法,但仍然没有成功。它如此欣赏任何解决方案.. 感谢

2 个答案:

答案 0 :(得分:0)

试试这个:

 <?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;?>]'>

答案 1 :(得分:0)

不需要所有这些,您只需要在控制器中清理它,按照您的提及使用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 ?>]"
>