简体   繁体   中英

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

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

<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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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