所以我把2個值放在我的複選框中,第一個是數量,第二個是id。我已經使用empty(),但仍然無法解決這個「未定義的偏移」問題。任何建議?未定義偏移: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?>">
在我的位指示
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'));
}
幫助是非常讚賞。
您應該爲所有複選框使用相同的名稱,以便循環並獲取值。你所做的是有不同的複選框作爲數組..長話短說,使所有的複選框名稱='複選框[]' – Akintunde007
@Akintunde我懷疑這是一行多行形式,每行有4個複選框。所以數組遍歷行。 – Barmar
糟糕!似乎你是對的@Barmar。 OP也沒有詳細解釋上面的代碼應該做什麼。這看起來像代碼點火器語法。 $ this-> input-> post('checkbox')這行看起來好像只查找屬性複選框,而不是checkbox2,例如 – Akintunde007