2015-11-16 56 views
0

我有返回的對象喜歡這種模式:Implode基於codeigniter的活動記錄結果();

模型

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中的問題。 在我的情況,我用這樣

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

這是基於自動完成的jQuery,在屬性附加傷害data-source有一個字符串格式如下:data-source="["nama1", "nama2"]"

所以,基於的是,

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

這是打印user1user2,我怎麼能通過適當的字符串格式的數據源?

我知道內爆,但我嘗試了很多方法,但仍然沒有成功。任何解決方案這麼感激.. 感謝

+0

你確定它的'數據源= 「[」 nama1" , 「nama2」] 「',而不是'數據源=」[ 'nama1', 'nama2']「' ?另外你的foreach在變量名上缺少'$'。 – skywalker

回答

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

你有一個'''額外的那裏,你缺少'[]'。 – skywalker

+0

謝謝,它的工作。你可以給我一個解決方案,當用戶選擇一個用戶,它會自動顯示該用戶的所有數據在另一個HTML這是Ajax可以做到的。我應該選擇什麼,focusOut()? –

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 ?>]" 
>