簡體   English   中英

使用Codeigniter將數據從復選框數組插入數據庫

[英]Insert data into the database from checkbox array using Codeigniter

我想使用Codeigniter將數據從checkbox [array]插入數據庫。 我的情況是從復選框形式的用戶檢查評估標准,然后當復選框被選中然后值為1時,如果取消選中則為0,我的控制器將對其進行處理。這是我的觀點

ID | Trimester I | Trimester II | Trimester III |
21 | checbox_trimester_i[] | checbox_trimester_ii[] | checbox_trimester_iii[]
42 | checbox_trimester_i[] | checbox_trimester_ii[] | checbox_trimester_iii[]
23 | checbox_trimester_i[] | checbox_trimester_ii[] | checbox_trimester_iii[]

我想插入表“ assesmen”。 這是我在數據庫中的專欄

ID | ID_pk | Trimester_1 | Trimester_2 | Trimester_3 |
1 | 21 | 1 | 0 | 1
2 | 42 | 0 | 1 | 1
3 | 23 | 1 | 0 | 0

注意 * :

ID_pk = ID
Trimester_1 => checbox_trimester_i[]
Trimester_2 => checbox_trimester_ii[]
Trimester_3 => checbox_trimester_iii[]

這是我的查看表格:

foreach ($kuisioner as $art) { $no++; ?>
   <tr>
        <td><input type="hidden" name="id[]" value="<?php echo $art->id ?>"></td>
        <td align="center">
            <input type="checkbox" name="checbox_trimester_i[]">
        </td>         
        <td align="center">
            <input type="checkbox" name="checbox_trimester_ii[]">
        </td>         
        <td align="center">
            <input type="checkbox" name="checbox_trimester_iii[]">
        </td>
        </tr>
     <?php }

屏幕截圖視圖 在此處輸入圖片說明

表格檢視 在此處輸入圖片說明

這是我的控制器,但仍然無法使用,請幫助我解決它。 謝謝

$posted = $this->input->post();
$as_trim_satu = isset($posted['checbox_trimester_i']) ? $posted['checbox_trimester_i'] : array();
$data = array();
  foreach($posted['id'] as $key => $value)
  {
    $info_user = array(
    'user_id' => $value,
    'trimester_satu' => in_array($posted['id'][$key], $as_trim_satu) ?1:0,
    );
    $data[] = $info_user;
  }
    echo "<pre>";
    print_r($data);
    echo "</pre>";

您可能需要像下面那樣調整視圖,以將正確的值輸入控制器。 如果是這樣,您可以使用以下代碼。

輸入復選框的名稱,例如

name="checbox_trimester_i[<?php echo $art->id ?>]"

查看我更新的視圖。

<?php foreach ($kuisioner as $art) { $no++; ?>
<tr>
    <td><input type="hidden" name="id[]" value="<?php echo $art->id ?>"> </td>
    <td align="center">
        <input type="checkbox" name="checbox_trimester_i[<?php echo $art->id ?>]" value="1">
    </td>         
    <td align="center">
        <input type="checkbox" name="checbox_trimester_ii[<?php echo $art->id ?>]"  value="1">
    </td>         
    <td align="center">
        <input type="checkbox" name="checbox_trimester_iii[<?php echo $art->id ?>]" value="1">
    </td>
    </tr>
 <?php } ?>

下面是控制器代碼,用於訪問從頁面發布的表單數據

if($this->input->post()){
        $data = array();
        $ids = $this->input->post('id');
        $checbox_trimester_i = $this->input->post('checbox_trimester_i');
        $checbox_trimester_ii = $this->input->post('checbox_trimester_ii');
        $checbox_trimester_iii = $this->input->post('checbox_trimester_iii');   
        if($ids ){
            foreach ($ids as $key => $value){
                $info_user = array(
                'user_id' => $value,
                'Trimester_1' => !empty($checbox_trimester_i[$value]) ? 1: 0,
                'Trimester_2' => !empty($checbox_trimester_ii[$value]) ? 1: 0,
                'Trimester_3' => !empty($checbox_trimester_iii[$value]) ? 1: 0,
                );
                $data[] = $info_user;

            }   
        }

        echo "<pre>";
        print_r($data);
        echo "</pre>";
    }

請注意我創建的變量$info_user 在更新之前,您可以使用正確的數據庫列名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM