2011-06-06 3 views
0

У меня есть данные, отображаемые с использованием jquery datatable из контроллера codeigniter. Я хочу знать, как я могу отправить значения из возвращаемого данных обратно контроллеру и использовать эти значения для извлечения новых записей из БД, а затем снова загрузить их на страницу.отправка данных обратно из datatables в codeigniter

Мой текущий код

$(function(){ 
    $('#tableChart').dataTable({ 
     // -------Function for formatting the table data elements------- 
     "fnRowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull) { 


       $.each(aData, function (i, elem){      
        $('td:eq('+i+')', nRow).html('<b><font color="#40A913">'+aData[i]+'</font></b>'); 
       }) 
       return nRow; 
     }, 



      "bAutoWidth": false, 
      "bProcessing": true, 
      "bLengthChange": false, // Remove the show list drop down button 
      "bInfo": false,   // Remove info part under the table 
      "bFilter" : false,  // Remove search box 
      "bDestroy": true,   // Remove table & recreate table 

      "bServerSide": false, 

      "sAjaxSource": "<?php echo base_url(); ?>index.php/print_db_table/get_print_db_table/<?php echo $table_name; ?>", 

    });   
}); 

<div class="container"> 
    <div class="holderForTableChart"> 
     <table width ="100%" cellpadding="5" cellspacing="0" class="display" id="tableChart"> 
      <thead> 
       <tr id="tableHeadder" > 
        <?php 
         foreach($table_header as $item): 
          $header = $item->name; 
          echo '<th>'.$header.'</th>' ; 
         endforeach; 
        ?>            
       </tr> 
       <tr> 
       <td></td> 
       <td> 
       <select id=""></select> 
       <select id=""></select> 
       </td> 
       <td> 
       <select id=""></select> 
       <select id=""></select> 
       </td> 
       <td> 
       <select id=""></select> 
       <select id=""></select> 
       </td> 
       <td> 
       <select id=""></select> 
       <select id=""></select> 
       </td> 
       </tr> 
      </thead> 
      <tbody> 
       <tr> 
        <td colspan="6" class="dataTables_empty">Loading data from server</td> 
       </tr> 
      </tbody> 
     </table>  
    </div> 
</div> 

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

ответ

1

humm ... Предполагая, что этот поле выбора имеет id как #min_max_value , ваш код javascript будет похож на код ниже. Этот код повторно вызывает ajax и будет перерисовывать таблицу. На контроллере CodeIgniter и будет иметь возможность захватить эту мин максимального значение, как $ _POST [ «min_max_value»]

я ссылался на эту страницу в разделе fnServerData ур вопроса http://www.datatables.net/usage/callbacks

var oTable = ''; 
$(function(){ 
    oTable = $('#tableChart').dataTable({ 
     // -------Function for formatting the table data elements------- 
     'fnRowCallback': function(nRow, aData, iDisplayIndex, iDisplayIndexFull) { 
       $.each(aData, function (i, elem){      
        $('td:eq('+i+')', nRow).html('<b><font color='#40A913'>'+aData[i]+'</font></b>'); 
       }) 
       return nRow; 
     }, 
      'bAutoWidth': false, 
      'bProcessing': true, 
      'bLengthChange': false, // Remove the show list drop down button 
      'bInfo': false,   // Remove info part under the table 
      'bFilter' : false,  // Remove search box 
      'bDestroy': true,  // Remove table & recreate table 
      'bServerSide': false, 
      'sAjaxSource': '<?php echo base_url(); ?>index.php/print_db_table/get_print_db_table/<?php echo $table_name; ?>', 

      'fnServerData': function (url, data, callback) { 
       // Add new data 
       data.push({'name':'min_max_value', 'value':$('#min_max_value').val()}); 
       $.ajax({ 
        'url': url, 
        'data': data, 
        'type': 'POST', 
        'success': callback, 
        'dataType': 'json', 
        'cache': true 
       }); 
      }, 
    });   

    $('#min_max_value').change(function(){ 
     oTable.fnDraw(); 
    }); 
}); 
+0

вау, кажется, как это может работать, плохо дать ему попробовать и обновить статус здесь, заблаговременно для усилий ура. – swordfish

+0

Эй, похоже, что данные не отправляются обратно на контроллер CI, даже после того, как выбор сделан, вещь просто загружает то же самое table – swordfish

+0

Это странный контроллер CI, не получающий данные, можно установить firebug и поместить console.debug (данные); сразу после этого data.push ({...}) код – Aman

Смежные вопросы