代码点火器中的内爆数据


implode explode data in codeigniter

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

我听说过内爆,但我不知道如何使用它们。请给我一个如何在代码点火器内爆和爆炸的想法。

我的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>

首先,在HTML FORM中,您需要使用数组更改name属性值,除非它不会生成选定值的数组

<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>

您可以使用内爆函数将数组元素与字符串连接起来,并使用爆炸函数逐字符串拆分字符串。在这种情况下,你可以这样使用它们。

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);

希望它对你有用。

 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);

首先,您需要用数组更改名称属性值,除非它不会生成选定值的数组

<div class="col-xxl-3 col-md-3">
  <label for="validationCustom03" class="form-label">Supplier  *</label>
  <select class="form-control supplier_select" name="supplier[]" multiple="multiple" required>
    <?php 
      $supplier_array_data=explode(",", $user_data->supplier);
      foreach($supplier_data as $supplier) {
    ?>
      <option value="<?php echo $supplier->supplier_id;?>" ><?php echo $supplier->supplier_name;?></option>
   <?php } ?>
  </select>
  <div class="invalid-feedback">
    Supplier is required.
  </div>
</div>
<?php
  //Controller function
  public function supplier ()
  {
    //implode
    $supplier = implode(",", $this->input->post('supplier'));
    print_r($supplier);
 
    //Explode
    $explode_supplier =explode(",", $supplier);
    print_r($explode_supplier);
  }
?>