ユーザーがインベントリを検索したときに生成された結果 (テーブル) のダウンロードを許可しようとしています。ボタンをクリックして、結果を CSV ファイルにダウンロードできるようにしたいと考えています。クエリを実行した直後に PHP コードを追加すると、CSV ファイルを生成できます。ただし、このボタンをページの別の場所に配置する必要があるため、検索の直後ではなく、クエリ結果を送信するこの関数を呼び出すことができるようにしたいと考えています。
これを行うと、ファイルを生成できます。
function output_csv ($data) {
$filename = "exportfile.csv";
$handle = fopen($filename, 'w+');
fputcsv($handle, array('UserID','UserName'));
foreach($row = $data->fetch(PDO::FETCH_ASSOC)) {
fputcsv($handle, array($row['UserID'], $row['UserName']));
}
fclose($handle);
}
PHPはサーバー側であることを知っているので、ボタンと同じページにある場合、onclickでこの関数を呼び出すことはできません。したがって、この関数を onclick から呼び出すことができる別のファイルに入れる必要があると考えていました。しかし、$data (クエリ結果) を渡す方法がわかりません。変数を文字列に変換できないというメッセージが表示され続けます。
$file_array=$db->prepare("SELECT UserID, UserName FROM UserProfile");
$file_array->execute();
<button type="button" onclick="download_file.php?pass_array=<?php echo $file_array; ?>)">Click Me</button>
したがって、私の問題は、クエリの結果を自分のページまたは別のページの output_csv 関数に送信してファイルに書き込む方法がわからないことです。
ありがとう、