2017-09-15 95 views
0

我想獲取表數據並將其存儲在數組中,並將其傳遞到控制器中,以便我可以使用PHP excel編寫。我試過使用其他數據,它的工作。現在,當我嘗試使用這個我的excel文件是空的。發送數組到AJAX和訪問傳遞的數據到Codeigniter中的控制器

這裏是我的Javascript代碼

var TableData = new Array(); 
    $('#tblmonthlydues tr').each(function(row, tr){ 
     TableData[row] = { 
      "amortid" : $(tr).find('td:eq(0)').text() 
      , "duedate" :$(tr).find('td:eq(1)').text() 
      , "customername" : $(tr).find('td:eq(2)').text() 
      , "lotdesc" : $(tr).find('td:eq(3)').text() 
      , "daysdue" : $(tr).find('td:eq(4)').text() 
      , "amountdue" : $(tr).find('td:eq(5)').text() 
      , "amortdue" : $(tr).find('td:eq(6)').text() 
      , "surcharge" : $(tr).find('td:eq(7)').text() 
      , "vat" : $(tr).find('td:eq(8)').text() 
      , "ips" : $(tr).find('td:eq(9)').text() 
      , "interest" : $(tr).find('td:eq(10)').text() 
      , "principal" : $(tr).find('td:eq(11)').text() 
      , "payments" : $(tr).find('td:eq(12)').text() 
     } 
    }); 
    TableData.shift(); 
    var data = JSON.stringify(TableData); 
    data = data.substring(0, data.length - 1).substring(1, data.length); 
    console.log(data); 

    $.ajax({ 
     type: "POST", 
     url: baseurl + "collection/get_monthly_dues_report", 
     data: {'data':data}, 
     success: function(data){ 
      window.location.href = baseurl + "collection/get_monthly_dues_report"; 
     }, 
     error: function(data){ 

     }, 
    }); 

這裏是我的控制器

$data = $this->input->post('data'); 
$data = json_decode($data); 
foreach($data as $r) { 
    $this->excel->getActiveSheet()->fromArray(array(
    $r['duedate'], $r['customername'], $r['lotdesc'], $r['daysdue'], 
    $r['amountdue'], $r['amortdue'], $r['surcharge'], $r['vat'], $r['ips'], 
    $r['interest'], $r['principal'], $r['payments']), null, 'A' . $row 
); 
    $this->excel->getActiveSheet() 
       ->getStyle('A' . $row . ':L' . $row) 
       ->applyFromArray($styleArray2); 
    $this->excel->getActiveSheet() 
       ->getStyle('A' . $row . ':L' . $row) 
       ->applyFromArray($styleArray4); 
    $row ++; 
} 
+0

你爲什麼要設置過程數據和的contentType ?通常,如果您發送類似FormData對象的東西,則只需將它們都設置爲false。並且不希望jQuery處理對象或設置內容類型(基礎XHR將設置它)。嘗試刪除這些,看看是否有幫助。你也需要在PHP端json_decode –

+0

嘗試刪除緩存,processData和contentType。增加了$ data = json_decode($ data);到控制器仍然沒有。 – Azis

+0

你爲什麼還在執行data.substring()調用?這會與JSON混淆,可能會造成它的惡化。 –

回答

0

你忘了轉換JSON數據爲關聯數組

json_decode($data,true); 
+0

這個伎倆。非常感謝! – Azis

相關問題