2016-10-05 6 views
1

私はstr_get_htmlhttp://simplehtmldom.sourceforge.net/を使用して、HTMLテーブルをCSVにエクスポートしています。ユーザーがフォームを完了すると、同じテーブルが画面に表示されます。彼らがフォームボックスをチェックした場合は、ダウンロード用のCSVファイル(スクリーン上にテーブルを表示することに加えて)も生成したいと思います。テーブルをCSVに変換

ajaxを使用すると、空のdiv要素に表が表示されます。

<script type="text/javascript"> 
    $(document).ready(function() { 
    var options = {target: '#output1'}; 
    $('#completed').ajaxForm(options);}); 
</script> 

ほとんど動作しています。唯一の問題は、ダウンロードするファイルを生成するのではなく、CSVコンテンツをdivアップデートに表示することです。テーブルの画面表示を削除してajax機能を削除すると、CSVファイルが完全に生成されます。誰かがダウンロードするファイルを生成するように誰かが私の下のコードを助けることができますか?

include 'simple_html_dom.php'; 

    $html = str_get_html($table); 
    header('Content-type: application/ms-excel'); 
    header('Content-Disposition: attachment; filename=sample.csv'); 

    $fp = fopen("php://output", "w"); 

    foreach($html->find('tr') as $element) 
    { 
     $td = array(); 
     foreach($element->find('th') as $row) 
     { 
      $td [] = $row->plaintext; 
     } 
     fputcsv($fp, $td); 

     $td = array(); 
     foreach($element->find('td') as $row) 
     { 
      $td [] = $row->plaintext; 
     } 
     fputcsv($fp, $td); 
    } 

    fclose($fp); 

答えて

1

"php:// output"を使用する代わりに、パス/ファイル名を使用する必要があります。今、PHPは出力バッファ機構に書き込むように指示しています。例えば

$fp = fopen("path/to/filename.csv", "w");