简体   繁体   English

在foreach中选择选项仅在上次选择选项中获得值(代码点火器)

[英]Select Option in foreach only get value in last select option (Code Igniter)

Why I can't post a select option value in foreach loop? 为什么我不能在foreach循环中发布选择选项值? It just save the last select option value. 它只是保存最后一个选择选项的值。

It's only save the "Rutinitas" value in Printer (which is the last select option), but doesn't save the CPU or Mouse "Rutinitas" option value. 它仅在打印机中保存“ Rutinitas”值(这是最后一个选择选项),但不保存CPU或鼠标的“ Rutinitas”选项值。

This is the controller 这是控制器

public function tampilkanKomponen2($tgl_cek,$nama_alat) {
    if($this->session->userdata('logged_operator')) {
         $session_data = $this->session->userdata('logged_operator');
         $nip = $session_data['nip'];
         $nama = $session_data['username'];
        $hasil = $this->operator_model->getByAlat($nama_alat)->result();
        $hasil2 = $this->operator_model->showPengecekan()->result();    
        $data =array (
            'nip' => $nip,
            'nama' => $nama,
            'hasil2' => $hasil2,
            'hasil' => $hasil,
            //'hasil2' => $hasil2,
            'tgl_cek' => $tgl_cek,
            'nama_alat' => $nama_alat
            //'id_komponen2' =>$id_komponen
        );
        $this->load->view('tambah_pengecekan3_v',$data);
    }
    else {
        echo "<script> history.go(-1); </script>";
    }
}

public function simpanPengecekan() {
    if($this->operator_model->check_logged()==TRUE) {
        $session_data = $this->session->userdata('logged_operator');
        $nip = $session_data['nip'];
        $id_komponen = $this->input->post('id_komponen');
        $tgl_cek = $this->input->post('tgl_cek');
        $rutinitas = $this->input->post('rutinitas');
        $kriteria = $this->input->post('kriteria');
        $tindakan = $this->input->post('tindakan');
        $nama_alat = $this->input->post('nama_alat');

        $data =array (
            'id_komponen' => $id_komponen,
            'tgl_cek' => $tgl_cek,
            'rutinitas' => $rutinitas,
            'kriteria' => $kriteria,
            'tindakan' => $tindakan,
            'operator' => $nip
        );
        $hasil = $this->operator_model->tambahPengecekan($data);
        //redirect(base_url('operator'));
        $this->tampilkanKomponen2($tgl_cek,$nama_alat);
        //redirect_back();
    }
    else {
        echo "<script> history.go(-1); </script>";
    }
}

This is the view 这是视图

<div class="container">
  <h4> Buat Pengecekan Baru </h4>
  <form method="post" action="simpanPengecekan">
  <div style="border-bottom : solid black 1px;margin-bottom:30px;">
    <div class="row row-form">
      <div class="col-md-2"> <label class="control-label"> Tanggal Pengecekan </label> </div>
      <div class="col-md-10"><input type="text" name="tgl_cek" class="form-control datepicker" value="<?php echo $tgl_cek; ?>"></div>
    </div>
    <div class="row row-form">
      <div class="col-md-2"> <label class="control-label">Nama Alat</label> </div>
      <div class="col-md-10">
      <input type="text" name="nama_alat" class="form-control" value="<?php echo $nama_alat; ?>" readonly>
      </div>
    </div>
    <a href="../operator/tambahPengecekan"><button type="button" class="btn btn-primary"> Pilih Alat </button></a>
  </div>
      <h6>Komponen</h6>
      <?php $no=0;foreach($hasil as $row) { ?>
      <div>
          <input type="hidden" name="id_komponen" id="id<?php echo +$no;?>" class="form-control" value="<?php echo $row->id_komponen;?>" disabled>
          <p> <?php echo $row->nama_komponen;?> </p>

          <button type="button" class="btn btn-primary" onClick="javascript:showhide('pengecekan','<?php echo +$no;?>')"> Isi Pemeriksaan </button>      

          <div id="pengecekan<?php echo +$no;?>" style="display:none;">

        <div class="row row-form">
          <div class="col-md-2"> <label class="control-label"> Rutinitas </label> </div>
          <div class="col-md-10">
          <select name="rutinitas" class="form-control">
              <option value="Harian"> Harian </option>
              <option value="Mingguan"> Mingguan </option>
              <option value="Bulanan"> Bulanan </option>
              <option value="3 Bulanan"> 3 Bulanan </option>
              <option value="6 Bulanan"> 6 Bulanan </option>
              <option value="Tahunan"> Tahunan </option>
          </select>
          </div>
        </div>
        <div class="row row-form">
          <div class="col-md-2"> <label class="control-label"> Kriteria </label> </div>
          <div class="col-md-10"><input type="text" class="form-control" name="kriteria"></div>
        </div>
        <div class="row row-form">
          <div class="col-md-2"> <label class="control-label"> Tindakan </label> </div>
          <div class="col-md-10"><input type="text" class="form-control" name="tindakan"></div>
        </div>
          <input type="submit" class="btn btn-primary" value="Simpan"> <br><br><br>
      </div>
      </div>
      <?php $no++; } ?>          
  </form>
      <br><a href="../operator"><button type="button" class="btn btn-wide btn-primary btn-batal">Selesai</button></a> <br> <br>
      <a href="../operator"><button type="button" class="btn btn-wide btn-default btn-batal">Batal</button></a>

</div>

This is the model 这是模特

这就是模型


THis is the result in database 这是数据库中的结果

这是数据库中的结果

Change select name to rutinitas[] 将选择名称更改为rutinitas[]

<select name="rutinitas[]" class="form-control">
          <option value="Harian"> Harian </option>
          <option value="Mingguan"> Mingguan </option>
          <option value="Bulanan"> Bulanan </option>
          <option value="3 Bulanan"> 3 Bulanan </option>
          <option value="6 Bulanan"> 6 Bulanan </option>
          <option value="Tahunan"> Tahunan </option>
      </select>

if you want to insert all selected value in same column of table then use implode 如果要在表的同一列中插入所有选择的值,请使用implode

  $rutinitas = implode(',',$this->input->post('rutinitas'));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM