2011-06-06 53 views
0

我有一個數據表顯示使用來自codeigniter控制器的jquery數據表。我想知道的是,如何將數據表中的值從數據表發送回控制器,並使用這些值從數據庫檢索新記錄,然後再次將它們加載到頁面中。從數據表發回數據到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並重繪表。 在笨控制器ü將能夠抓住這個最低最高值$ _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 2011-06-07 05:50:09

+0

嘿,似乎數據沒有被髮回到CI控制器,即使選擇後,事情只是加載相同表 – swordfish 2011-06-07 07:20:08

+0

這是奇怪的CI控制器沒有收到數據,你可以安裝螢火蟲和放置console.debug(數據);在這之後data.push({...})代碼 – Aman 2011-06-07 17:01:41