如何将我的复选框的值插入数据库Codeigniter中的不同列

时间:2019-02-06 03:10:42

标签: codeigniter

应该是这样

ID | access1 | access2 | access3 |

和值:

1 | 1 | 0 | 1

// myController

    $basic_data = array();

    $select_access1 = $_POST("select_access1");
    $select_access2 = $_POST("select_access2");
    $select_access3 = $_POST("select_access3");
    $select_access4 = $_POST("select_access4");
    $select_access5 = $_POST("select_access5");

    $basic_data[] = array('accs_trans_sec'=>$select_access1,'accs_acctng_sec'=>$select_access2, 'accs_admin_sec'=>$select_access3,'accs_dashboard_sec'=> $select_access4, 'accs_reports_sec'=>$select_access5);

    $this->RoleModel->saveRole($basic_data);

// myModel

public function saveRole($basic_data)
{
    foreach($basic_data as $value) {
        $this->db->insert('roles_global_access', $basic_data);
    }}

4 个答案:

答案 0 :(得分:0)

您可以将数据设置为数组,如下所示:

for(i = 1; i <= amount; i++){

答案 1 :(得分:0)

让我们假设您基于$_POST变量来获取复选框的值。

由于您已将$basic_data声明为 array(),因此无需将其强制转换为 $ basic_data [] 。 因此,在您的控制器上应该是这样的:

    $basic_data = array(
        'accs_trans_sec'=>$select_access1,
        'accs_acctng_sec'=>$select_access2,
        'accs_admin_sec'=>$select_access3,
        'accs_dashboard_sec'=> $select_access4,
        'accs_reports_sec'=>$select_access5
    );

您的模型不需要使用循环,因为您要插入Object data,因此它应如下所示:

public function saveRole($basic_data)
 {
    $this->db->insert('roles_global_access', $basic_data);

    return ($this->db->affected_rows() != 1) ? false : true;
}

因此,基本上,如果模型返回 true ,则它成功插入了数据。

要检查是否成功插入数据:

 $result = $this->RoleModel->saveRole($basic_data);

   if($result == true){
    echo ("Successfully inserted!");
   }else{
     echo ("Problem!");
   }

答案 2 :(得分:0)

首先,您没有以正确的方式获取发布数据。对于$_POST,必须使用方括号[]

第二,不要在模型中使用foreach循环

像这样在控制器中获取数据

  $basic_data = array(
    'accs_trans_sec' => $_POST['select_access1'],
    'accs_acctng_sec' => $_POST['select_access2'],
    'accs_admin_sec' => $_POST['select_access3'],
    'accs_dashboard_sec' => $_POST['select_access4'],
    'accs_reports_sec' => $_POST['select_access5']
  );
  $this->RoleModel->saveRole($basic_data);

模型

public function saveRole($basic_data){
    return $this->db->insert('roles_global_access', $basic_data);
}

答案 3 :(得分:0)

您应该尝试这个。

控制器:

$this->RoleModel->saveRole($_POST);

型号:

    public function saveRole($basic_data){
           extract($basic_data);
           $dataset = array(
            'accs_trans_sec' => $basic_data['select_access1'],
            'accs_acctng_sec' => $basic_data['select_access2'],
            'accs_admin_sec' => $basic_data['select_access3'],
            'accs_dashboard_sec' => $basic_data['select_access4'],
            'accs_reports_sec' => $basic_data['select_access5']
          );
          $this->db->insert('roles_global_access', $dataset);
    }