2017-06-15 60 views
0

我正在使用多選jQuery插件的下拉菜單,允許多個值與複選框選擇.. 我試圖將這些值存儲到數據庫.. 在視圖中,如果我使用[]符號輸入標籤的名稱屬性,它提供了錯誤.. 如果我不使用該符號,只有一個值將被保存。 因爲多個值這裏選擇它是一個數組所以這個[]符號在這裏必須使用.... 請幫我解決這個...如何使用codeigniter將下拉菜單中的多個複選框值存儲到數據庫中?

我的看法是

<div class="col-md-8 col-lg-offset-2"> 
 
    <label>Select User Name <i class="required"> * </i> </label> 
 

 
    <select name="user_id" class="form-control"> 
 
       <?php foreach($user->result() as $link){ ?> 
 
       <option value="<?php echo $link->user_id ?>"><?php echo $link->username ?></option> 
 
       <?php } ?> 
 
      </select> 
 
</div> 
 

 
<div class="col-md-8 col-lg-offset-2"> 
 
    <label>Select Course Name <i class="required"> * </i> </label> 
 

 
    <select name="course_id[]" class="form-control" multiple id="course_id"> 
 
       <?php foreach($course->result() as $link){ ?> 
 
       <option value="<?php echo $link->id ?>"><?php echo $link->title ?></option> 
 
       <?php } ?> 
 
      </select> 
 
</div> 
 

 
<div class="col-md-8 col-lg-offset-2"> 
 
    <label>Download Access<i class="required"> * </i> </label> 
 
    <select class="form-control" name="access" id="access"> 
 
         <option value=''>--Select Access Type--</option> 
 
         <option value="yes" <?php echo set_select('access', 'yes'); ?> >Yes</option> 
 
         <option value="no" <?php echo set_select('access', 'no'); ?> > No</option>  
 
        </select> 
 

 
</div>

我控制器

function add() { 
 

 
    $this - > _add_set_rules(); 
 
    $data = array(); 
 

 
    if ($this - > form_validation - > run() == FALSE) { 
 
    $data['user'] = $this - > user_course_model - > get_user(); 
 
    $data['course'] = $this - > user_course_model - > get_course(); 
 
    $this - > load - > view('permission/user_course_view', array('left_sidebar' => 'sidebar/left_sidebar', 'right_sidebar' => 'sidebar/right_sidebar'), $data, TRUE); 
 

 
    } else { 
 
    //Save and redirect.. 
 
    $data = $this - > input - > post(); 
 

 
    $inputs_array = array('course_id' => $data['course_id'], 
 
     'user_id' => $data['user_id'], 
 
     'download_access' => $data['access'] 
 
    ); 
 

 
    $inserted_id = $this - > user_course_model - > save_user_course($inputs_array); 
 
    // print_r($inserted_id); 
 
    // exit(); 
 
    if ($inserted_id) { 
 
     $this - > session - > set_flashdata('msg', "Access created successfully.."); 
 
     redirect(base_url(). 
 
     'user_course', 'refresh'); 
 
    } else { 
 
     $this - > session - > set_flashdata('errormsg', "Something went wrong please contact admin."); 
 
     redirect(base_url(). 
 
     'user_course', 'refresh'); 
 
    } 
 

 
    } 
 

 
} 
 

 
function _add_set_rules() { 
 
    $this - > form_validation - > set_rules('user_id', 'User Name', 'trim||xss_clean|required'); 
 
    $this - > form_validation - > set_rules('access', ' Access', 'trim||xss_clean|required'); 
 
    $this - > form_validation - > set_rules('course_id[]', ' Course Title', 'trim||xss_clean|required'); 
 

 

 
}

我的模型是

function save_user_course($inputs_array) { 
 
    $this - > db - > insert('user_course', $inputs_array); 
 
    return ($this - > db - > affected_rows() != 1) ? false : $this - > db - > insert_id(); 
 

 
}

表結構

ID COURSE_ID user_ID的download_access

回答

0

檢查以下行:

$inputs_array = array('course_id' => $data['course_id'], 
     'user_id' => $data['user_id'], 
     'download_access' => $data['access'] 
    ); 

    $inserted_id = $this - > user_course_model - > save_user_course($inputs_array); 

這裏$data['course_id']是一個數組,而你不能直接添加一個數組到數據庫表。

+0

json_encode($數據[「COURSE_ID」]),你將能夠存儲,但它不會是一個好主意。每行中包含user_id和course_id的單獨表格將更有幫助。 –

+0

我正在存儲SAPARATE表USER_ID和COURSE_ID只有... –

+0

如何傳遞數組值到數據庫?任何例子.. –

相關問題