foreachループで選択オプションの値を投稿できないのはなぜですか?最後の選択オプション値を保存するだけです。foreachのオプションを選択最後の選択オプション(コードイグナイター)の値を取得
これは、プリンタの「Rutinitas」値(最後の選択オプション)を保存するだけですが、CPUまたはマウスの「Rutinitas」オプション値は保存しません。
これは、このビュー
<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>
これは
モデルであるコントローラ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>";
}
}
あります
このは、あなたがテーブルの同じ列内のすべての選択した値を挿入したい場合は、その後implode
を使用
これは、ループを作成しているときに選択コントロールが内部にあるので、**重複している名前**を取得しているからです。 'rutinitas'に同じ名前の2回がある可能性がありますので、投稿しません。あなたの選択コントロールに一意の名前が付いていることを確認してください。 'rutinitas_1'のようなものを追加することができます。 –
' rutinitas'の名前を 'rutinitas []'のような配列に変更する必要がありますか? @RajJagani – Deni
複数選択されたオプションがある場合は、 'rutinitas []'配列のような名前を付けることができますが、単一の値を送信する場合は一意の名前を付ける必要があります。 –