2017-09-15 3 views
0

テーブルのデータを取得し、配列に格納してコントローラに渡そうとしているので、PHPで書き込むことができます。私は他のデータを使ってみました。今私がこれを使用しようとすると、私の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

なぜあなたはPROCESSDATAとcontentTypeを設定したのを使用して連想配列にJSONデータを変換するのを忘れているあります?通常、FormDataオブジェクトのようなものを送信する場合は、両方をfalseに設定する必要があります。また、jQueryがオブジェクトを処理したり、コンテンツタイプを設定したりしないようにします(XHRが設定します)。それらを削除し、それが役立つかどうか確認してください。また、PHP側でjson_decodeする必要があります –

+0

キャッシュ、processDataとcontentTypeを削除しようとしました。 $ data = json_decode($ data)を追加しました。コントローラにはまだ何もありません。 – Azis

+0

なぜdata.substring()呼び出しもやっていますか?それは恐らくJSONが誤ってそれを混乱させることになるだろう。 –

答えて

0

はあなたが

json_decode($data,true); 
+0

これはトリックでした。どうもありがとうございます! – Azis

関連する問題