チェックボックスに2つの値を入れます。最初の値は2番目の値、2番目の値はidです。私はすでに空()を使用していますが、まだ私はこの "未定義オフセット"問題を解決できません。なにか提案を?空白()を使用しても定義されていないオフセット:1
<input type="checkbox" name="checkbox[]" value="1::<?php echo $players->player_id?>">
<input type="checkbox" name="checkbox2[]" value=".5::<?php echo $players->player_id?>">
<input type="checkbox" name="checkbox3[]" value=".5::<?php echo $players->player_id?>">
<input type="checkbox" name="checkbox4[]" value="-.5::<?php echo $players->player_id?>">
そして、私のcontollerで
public function update() {
for ($i = 0; $i < count($this->input->post('checkbox')); $i++) {
$checkboxvalue = explode('::', $this->input->post('checkbox')[$i]);
$checkboxvalue2 = explode('::', $this->input->post('checkbox2')[$i]);
$checkboxvalue3 = explode('::', $this->input->post('checkbox3')[$i]);
$checkboxvalue4 = explode('::', $this->input->post('checkbox4')[$i]);
if(empty($checkboxvalue[0])){
$checkboxvalue[0] = 0;
}
if(empty($checkboxvalue[0])){
$checkboxvalue2[0] = 0;
}
if(empty($checkboxvalue[0])){
$checkboxvalue3[0] = 0;
}
if(empty($checkboxvalue[0])){
$checkboxvalue4[0] = 0;
}
$totals = $checkboxvalue[0] + $checkboxvalue2[0] + $checkboxvalue3[0] + $checkboxvalue4[0];
$data = array(
'player_id' => $checkboxvalue[1],
'player_att1' => $checkboxvalue[0],
'player_att2' => $checkboxvalue2[0],
'player_att3' => $checkboxvalue3[0],
'player_att4' => $checkboxvalue4[0],
'player_atotal' => $totals,
);
$this->load->model('Evaluation_model');
$this->Evaluation_model->editview($checkboxvalue[1], $data);
$checkboxvalue = array();
}
redirect(base_url('Evaluations'));
}
ヘルプは非常に高く評価されます。
すべてのチェックボックスに同じ名前を使用して、ループして値を取得する必要があります。あなたが行ったことは、配列とは異なるチェックボックスを持っているということです。長いストーリー、すべてのチェックボックスを作るcheckbox [] ' – Akintunde007
@Akintunde私はこれが複数行のフォームの1つの行だと思うし、各行には4つのチェックボックス。したがって、配列は行をまたいで移動します。 – Barmar
あなたは正しい@Barmarと思われます。また、OPは、上記のコードが何をすべきかを詳細には説明しませんでした。これはコードイグナイタの構文のようです。 $ this-> input-> post( 'checkbox')という行は、属性チェックボックスを探していて、checkbox2ではなく、例えば – Akintunde007