2017-02-21 27 views
0

Я хочу получить все проверенные данные из таблицы. Я использую флажки в своей таблице. Когда я нажму статус изменения, он изменит статус моей роли. Но у меня проблемы с получением значений checkboxes. В приведенном ниже коде не удалось обновить мои данные. Значение флажка, которое я получаю, равно NULL. Пожалуйста, помогите мне решить проблему. Благодаря передовойИзвлечь данные из флажков

Модель

function deaktifRole($id_role,$editBy) 
{ 
    $data = array(
      'update' =>date('Y-m-d H:i:s'), 
      'updateBy' =>$editBy, 
      'flag' => '0' 
     ); 

    $this->db->where('id_role',$id_role); 
    $this->db->update('tbl_role',$data); 
} 

Контроллер

function deaktifRole() 
{ 
    $session_data = $this->session->userdata('logged_in'); 


    $editBy = $session_data['username']; 
    foreach ($this->input->post['pilih'] as $value) { 
     $this->Role->deaktifRole($value->value,$editBy); 
    } 
    redirect('Home/Role'); 
    echo '<script>alert("Your form was successfully submitted!");</script>'; 
} 

Посмотреть

<div class="x_panel"> 
       <div class="x_title"> 
       <h2>Manage Staff Role</small></h2> 
       <?php echo form_open_multipart('Home/deaktifRole');?> 
       <div align="right"> 
        <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal">Add</button> 
        <button type="submit" class="btn btn-primary">Change Status</button> 
       </div> 
       <div class="clearfix"></div> 
       </div> 
       <div class="x_content"> 
       <table id="datatable-checkbox" class="table table-striped table-bordered bulk_action"> 
        <thead> 
        <tr> 
         <th><input type="checkbox" id="check-all" class="flat"></th> 
         <th>No</th> 
         <th>Role</th> 
         <th>Status</th> 
        </tr> 
        </thead> 
        <tbody> 
        <?php $j=0; foreach ($RoleList as $rows) 
        { 
        $j++; 
        ?> 
        <tr> 
         <td><input type="checkbox" class="flat" name="pilih[]" value="<?php echo $rows['id_role']; ?>"></td> 
         <td><?php echo $j; ?></td> 
         <td><?php echo $rows['role']; ?></td> 
         <td>Aktif</td> 
        </tr> 
        <?php } ?> 
        </tbody> 
       </table> 
       </div> 
       <?php echo form_close(); ?> 
      </div> 
      </div> 

    </div> 

ответ

0

Как $this->input->post('pilih') только ассоциативный массив, вы можете получить доступ к нему напрямую, без ->value свойств. Попробуйте использовать этот код:

foreach ($this->input->post('pilih') as $value) { 
    $this->Role->deaktifRole($value,$editBy); 
} 
+0

он по-прежнему возвращает нулевое значение –

+0

вы можете проверить страницу рендеринга html. Независимо от того, содержит ли он данные или нет атрибута внутреннего значения –

+0

Похоже, мой взгляд не опубликовал значение. Поэтому я получил нулевые данные. Но я не знаю, где ошибка из моего кода. –

0

использовать $this->input->post('pilih'); для извлечения данных флажка.

+0

Ничего не случилось, все еще не указана –

+0

внутри контроллера, в режиме 'deaktifRole()', попробуйте напечатать '$ _POST' и проверьте, получили ли вы значения флажка? –

+0

Я не получил значение. Я просто получаю нулевое значение –