前提・実現したいこと
PHPでユーザーが入力した内容をDB内で検索し、結果をcsvファイルでダウンロードしたいです。
SQLで検索後、Data table(jQueryのプラグイン)を使って検索結果をテーブル化して表示できるようにし、なおかつcsvでダウンロードできるようなボタンを一つ作成したいです。
発生している問題・エラーメッセージ
検索結果を表示させる回数分のcsvボタンが作成されてしまいました。(当たり前ですね…)
該当のソースコード
<?php if($stmt){ $ct = 0; echo '<p>検索結果</p>'; echo '<br>'; echo '<table border="1"=table id="example" class="display" cellspacing="0" width="100%"> <tr><th>○○</th></tr> '; foreach($stmt as $row){ if($ct == 0){ } echo '<tr>'; echo '<td>'.$row['○○'].'</td>'; $ct++; echo <<<EOM <script type="text/javascript"> $(document).ready(function() { var table = $('#example').DataTable( { "scrollY": "200px", "retrieve":true, "paging": false } ); var tables = $("#example").tableExport({ formats: ["csv"], bootstrap: false }); $('input.toggle-vis').on( 'change', function (e) { e.preventDefault(); var column = table.column( $(this).attr('data-column') ); column.visible( ! column.visible() ); $("#example").tableExport().update(); }); } ); </script> EOM; } } if($ct ==0){ echo '<div>該当するデータはありません</div>'; } } else{ } echo ' </table>'; ?>
試したこと
上記のphp内に記述した<script>文をphp外に記述した→csv出力ボタンが表示されず。
補足情報(FW/ツールのバージョンなど)
使用しているリンク
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script src="https://cdn.datatables.net/1.10.13/js/jquery.dataTables.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.9.9/xlsx.core.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.3/FileSaver.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/TableExport/3.3.9/js/tableexport.min.js"></script>
PHP初心者です。phpの検索結果をcsv化する方法がわからずいくつかのサイトを参考にして作成しました。
さらにif文を追加するべき(検索結果内容が1つ以上であればcsvファイル出力ボタンは一つ)など考えましたが、どのような解決方法があるでしょうか。
ご教授願います。
よろしくお願いします。
参考サイト
https://datatables.net/manual/options
https://qiita.com/328/items/f6dc79e4f552c1bff312#table
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/27 02:17
2021/07/27 02:36
2021/07/27 02:47
2021/07/27 02:50
2021/07/27 02:51
2021/07/27 09:01
2021/07/27 09:03
2021/07/27 17:22