2017-01-19 4 views
1

Я делаю проект для своей школьной темы. Я смущен тем, как делать проверку данных в флажке, и когда я нажимаю кнопку отправки, она будет циклически вставляться в мою базу данных. Мне удается отображать/предупреждать данные, которые проверяются в моей таблице данных.данные вставляются в таблицу данных checkbox codeigniter

Вот мой регулятора, где он заполняет мою табличные данные:

public function getalldocs() { 
    $listdocs = $this->Admin_model->getdoctors(); 
    $data = array(); 
    foreach ($listdocs as $docs) { 
     $row = array(); 
     $row[] = $docs->user_fname; 
     $row[] = $docs->user_mname; 
     $row[] = $docs->user_lname; 
     $row[] = '<input name="user_id[]" value="'.$docs->user_id.'" type="checkbox">'; 

     $data[] = $row; 
    } 
    $output = array( 
     "data" => $data, 
    ); 
    echo json_encode($output); 
} 

Вот на мой взгляд:

<div class="dataTable_wrapper"> 
    <table id="dataTables-docs" class="table table-striped table-bordered table-hover dataTable dtr-inline" role="grid" style="width: 100%;" width="100%" aria-describedby="dataTables-material"> 
     <thead> 
      <tr> 
       <th>First Name</th> 
       <th>Middle Name</th> 
       <th>Last Name</th> 
       <th></th> 
      </tr> 
     </thead> 
     <tbody></tbody> 
    </table> 
</div><!-- dataTable_wrapper --> 

здесь является мой Javascript, чтобы повторить выбранный флажок из моих данных стола :

function show_docs() { 
    $("#dataTables-docs").dataTable().fnDestroy(); 
    table = $('#dataTables-docs').DataTable({ 
     "ajax": { 
      "url": "<?php echo site_url('admin_controls/getalldocs')?>", 
      "type": "POST", 
     }, 
     responsive: true, 
     className: 'select-checkbox', 
     'bInfo': false, 
     'paging': false 
    }); 
} 

$('#dataTables-docs tbody').on('click', 'input[type="checkbox"]', function(e){ 
    var user_id = $(this).val(); 
    alert(user_id); 
}); 

сейчас, я хочу, чтобы все, что проверяется, будет добавлено в мою базу данных следующим образом: (myid, selectedfromcheckbox); вот мой скриншот из таблицы базы данных: enter image description here

ответ

1

Используйте другой Ajax для вставки данных

$('#dataTables-docs tbody').on('click', 'input[type="checkbox"]', function(e){ 
    var user_id = $(this).val(); 
    $.ajax({ 
      type:"post", 
      data: {user_id:user_id}, 
     "url": "<?php echo site_url('admin_controls/saveData')?>", 
      success:function(data){ 
      $("#info").html(data); 
      } 

     }); 
}); 

// Ниже кода в вас контроллер

public function saveData() 
{ 
// code to save in controler 
} 
+0

нет петли? если имеется много данных? –

+0

Функция будет вызываться после того, как будет установлен флажок. Так что нет необходимости в цикле –

+0

Что делать, если я сниму флажок? то нужно снова обновить? можете ли вы дать мне код для предупреждения, если снять отметку? –