2017-02-04 5 views
0

Я хочу получить идентификатор строки после отправки его в php-код, но im использовать datatables jquery plugin, однако я показываю свой id в datables, но datatables генерирует td вместо входов. если бы это было легко прочитать в php, но как я могу прочитать свой идентификатор строки datable в php ... Я пробовал $ _POST, но я не могу, потому что у меня нет никаких имен на tds. другой предмет im используя кодigniter. как только я могу прочитать мою строку id, я могу использовать ее для id = id для обновления моего элемента.Как я могу прочитать мою строку id из datatables jquery в php/codeigniter?

столик

var table = $('#example').DataTable({ 
     "lengthChange": false, 
     responsive: true, 
     dom: 'Blfrtip', 
     buttons: [{ 
      extend: 'excelHtml5', 
      exportOptions:{ 
       columns: [1,2,3,4,5,6] 
      } 
     },{ 
      extend: 'csvHtml5', 
      exportOptions:{ 
       columns: [1,2,3,4,5,6] 
      } 
     },{ 
      extend: 'pdf', 
      exportOptions: { 
       columns: [1,2,3,4,5,6] 
      } 
     }], 
     ajax: { 
      url: URL_GET_DATATABLE, 
      type: 'POST', 
     }, 
     columnDefs:[{ 
      targets: -1, 
      data: null, 
      defaultContent: "<a href='#'><span class='glyphicon glyphicon-pencil'></span></a>" 

     },{ 
      targets: 6, 
      render: function (data) { 
       return (data == 1) ? "<span class='label label-success'>active</span>":"<span class='label label-danger'>inactive</span>"; 
      } 
     }], 
     fnRowCallback: function (data,nRow) { 
      if (nRow[6] == 0) { 
       $(data).css({'background-color':'#f2dede'}); 
      }else if(nRow[6] == 1){ 
       $(data).css({'background-color':'#dff0d8'}); 
      }else{ 

      } 
     } 
    }); 

модель

public function datatable(){ 
     $this->db->select('id,descripcion,precio_compra,precio_venta,precio_mayoreo,existencia_minima,existencia,storelte_articulos.status'); 
     $this->db->from('storelte_articulos'); 
     $query = $this->db->get(); 
     return $query->result_array(); 
    } 

Контроллер

public function datatable(){ 
     $array = $this->products->datatable(); 
     $this->json($array); 
     $data = array(); 
     foreach ($array as $rows){ 
      array_push($data, array(
       $rows['id'], 
       $rows['descripcion'], 
       $rows['precio_compra'], 
       $rows['precio_venta'], 
       $rows['precio_mayoreo'],  
       $rows['existencia'], 
       $rows['status'] 
      )); 
     } 
     $this->json(array('data' => $data)); 
    } 

Контроллер обновление

public function updateProduct($data){ 
     $this->db->update('storelte_articulos',$data); 
     $this->db->where('id'); 
    } 

ответ

0

Вам нужно ввести свой ID во вход, но установите его как скрытый. Таким образом, данные не отображаются конечному пользователю, но доступны через почтовые данные.

Поскольку он может быть замечен с помощью инструментов разработчика/проверки, я бы предложил кодировать его для отображения, а затем декодировать его для использования с запросами базы данных.