【问题标题】:implode explode data in codeigniter在codeigniter中内爆爆炸数据
【发布时间】:2015-06-11 01:14:51
【问题描述】:

我正在从选择下拉列表中使用多项选择,我想将其存储在数据库中。

我听说过内爆爆炸,但我不知道如何使用它们。请告诉我如何在 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>

【问题讨论】:

  • 您应该将 ID - OID 组合存储在单独的表中。这样您就可以在未来进行搜索和过滤。
  • 好的,我可以保存它,但我的主要问题是我想在我的数据库的一列中保存多个值并在视图中显示它们......我怎样才能做到这一点??

标签: php mysql codeigniter select


【解决方案1】:

首先,在您的 HTML FORM 中,您需要使用数组更改 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>

【讨论】:

  • 然后接受它作为答案,因此必须将其视为已关闭问题。
【解决方案2】:

您可以使用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】:
     public function insert()
     {
    //Insert second stage details for employer into database.
    $Specilized_category = $this->input->post('spec_cat');
    $data=array(
    'Specilized_category'=>json_encode(implode(",", $Specilized_category)),
     );
    $this->db->insert('tbl_employer', $data);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多