2015-04-06 45 views
0

我正在使用选择下拉列表中的多个选择,我想将其存储在数据库中。implode爆炸codeigniter中的数据

我听说过内爆爆炸,但我不知道如何使用它们。请给我一个想法如何在codeigniter中爆炸和爆炸。

我的HTML表单:

<div class="form-group"> 
    <label> 
     Please Select Proof Of ID Deposit 
    </label> 
    <select multiple="" name="oids" class="js-example-basic-multiple js-states form-control"> 
     <optgroup> 
      <option value="Passport">Passport</option> 
      <option value="National ID Card">National ID Card</option> 
      <option value="Driving Licence">Driving Licence</option> 
      <option value="Univesity ID">Univesity ID</option> 
     </optgroup> 
    </select> 
</div> 

我的控制器:

public function customer_insert(){ 
    $data = array(
     'id'=>$this->input->post('up_id'), 
     'Other_id'=>$this->input->post('oids') //here I want to implode my values 
    ) 
    $this->db->insert('customer', $data); 
} 

查看文件:

<table> 
    <thead> 
     <tr><td>ID</td></tr> 
     <tr><td>Other ID</td></tr> 
    </thead> 
<?php foreach ($query as $customer){?> 
    <tr><td><?php echo $customer->id?></td></tr> 
    <tr><td><?php echo $customer->Other_id?></td></tr> // I want to show my imploded value here. 
<?php}?> 
</table> 
+0

您应该将ID存储中 - OID组合在一个单独的表。这样你可以在将来搜索和过滤。 – jeroen

+0

好的,我可以保存,但我的主要问题是我想保存多个值在我的数据库中的一列,并显示他们在视图中...我怎么能实现? –

回答

0

可以使用implode功能的加入数组元素用绳子和explode功能通过字符串拆分字符串。在这种情况下,你可以像这样使用它们。

public function customer_insert() { 
    // Convert array to comma separated value 
    $oidString = implode(",", $this->input->post('oids')); 
    $data = array(
     'id'=> $this->input->post('up_id'), 
     'Other_id'=> $oidString //here I want to implode my values 
    ) 
    $this->db->insert('customer', $data); 
} 

如果你想从逗号分隔值中取回数组,你可以使用explode

// Convert comma separated value to array 
$otherId = explode(",", $customer->Other_id); 

希望它对您有用。

3

首先你HTML表单内你需要一个阵列,以改变name ATTR值,除非它不会选择值的数组

<select multiple="" name="oids" class="js-example-basic-multiple js-states form-control"> 

必须像

<select multiple="" name="oids[]" class="js-example-basic-multiple js-states form-control"> 

而且在您的控制器功能

public function customer_insert() { 

    $oidVal = implode(",", $this->input->post('oids'));// Converted array into comma separated value using implode 

    $data = array(
     'id'=> $this->input->post('up_id'), 
     'Other_id'=> $oidVal 
    ) 
    $this->db->insert('customer', $data); 
} 

和你查看文件

<table> 
    <thead> 
     <tr><td>ID</td></tr> 
     <tr><td>Other ID</td></tr> 
    </thead> 
<?php foreach ($query as $key => $value) { ?> 
    <tr><td><?php echo $value['id']; ?></td></tr> 
    <tr><td><?php echo explode(',',$value['Other_id']);?></td></tr> // exploded value 
<?php } ?> 
</table> 
+0

这将为你工作.. –

+0

thanx其工作就像一个神奇的:) –

+0

然后接受它作为一个答案,所以这必须被视为封闭的问题。 –