私はphp/codeignitorを初めて使用し、フォームのチェックボックスの変更をデータベースに投稿しようとしています。変更する行は、以下のgl_idによって割り当てられます。モデルでupdate_checked関数を使用して、gl_id = xであるこれらの各フィールドにTRUEを投稿し、配列にない残りのフィールドにFALSEを使用する方法がわかりません。コントローラで$_POST['checked']を使用してチェックされた値の配列を作成および表示し、それをモデルに渡すことができます。次に、この配列を使用してdbに投稿する必要があります。ここで、gl_id=ビューのフォームの値です。
ビューで
<h1>Update GL id <?php echo $gl_field['gl_id'];?></h1>
<label>Stat</label>
<input type="checkbox" <?php if ($gl_field['stat'] == "TRUE") {echo "checked = checked";} ?>
name = "checked[]" id="stat" value= "stat" /><BR CLEAR="all">
<label>Exclude</label>
<input type="checkbox" <?php if ($gl_field['exclude'] == "TRUE") {echo "checked = checked";} ?>
name="checked[]" id="exclude" value= "exclude"><BR CLEAR="all">
<label>Override</label>
<input type="checkbox" <?php if ($gl_field['override'] == "TRUE") {echo "checked = checked";} ?>
name= "checked[]" id= "override" value = "override"/><BR CLEAR="all">
コントローラ内
public function update_table(){
$this->load->helper('form');
$this->page_nav_model->update_table();
$checked_array = $_POST['checked'];
$this->page_nav_model->update_checked($checked_array);
$this->load->view('pages/success');
}
モデル内
foreach($checked_array as $true){
echo $true;
}
上記の例のフォームに情報を取り込むときに明確にするために、すべてのチェックボックスがデータベースで「TRUE」に設定されているため、チェックされています。statのチェックを外して[送信]をクリックすると、値(除外、オーバーライド)を含む配列が表示されます。
私を正しい方向に導く助けに感謝します。