2

私は困惑しており、これを理解するために非常にありがたい助けを使うことができます.

基本的に、mysql データベースからのデータを表示するページがあります。

ダウンロードする CSV ファイルにすべてのデータをエクスポートするための単純なテキスト リンクがあります。そのコードは...

<a href="log_activity-export2CSV.php?id=<?php echo $colname_CoachActivityListData ?>">Export All</a>

...これはうまくいきます。

注: ログインしているユーザーに基づいてすべてが生成されるため、ID が必要になります。

上記をCSVにエクスポートするPHPファイルの内容/コードは次のとおりです...

<?php 
mysql_select_db($database_vandyConnect, $vandyConnect);

$queryString = "SELECT Created, Last_Updated, coach_name, Start_Date, End_Date, And_Many_More_Columns FROM Activity_Log WHERE User_id = ". $_GET['id'];

$result = mysql_query($queryString, $vandyConnect);

// $result = $db_con->query('SELECT * FROM `Activity_Log`');
if (!$result) die('Couldn\'t fetch records');

$num_fields = mysql_num_fields($result);

$headers = array();
for ($i = 0; $i < $num_fields; $i++) {
    $headers[] = mysql_field_name($result , $i);
}

// $today = date("F_j,_Y,_g:ia");
$today = date("Ymd_g-ia");

$fp = fopen('php://output', 'w');
if ($fp && $result) {
    header('Content-Type: text/csv');
    header('Content-Disposition: attachment; filename="ADEC_Activty_export-'.($today).'.csv"');
    header('Pragma: no-cache');
    header('Expires: 0');
    fputcsv($fp, $headers);
    while ($row = mysql_fetch_row($result)){
        fputcsv($fp, $row, ",");
    }
    die;
}
?>

...注:Dreamweaverが挿入した、データベースやユーザー権限などに接続するために、この上からすべてのphpコードを取り除きました。

SO NOW、ユーザーがこのデータの CSV ファイルをダウンロードする方法を追加する方法を見つけようとしていますが、ユーザーが選択した特定の日付範囲の間のみです。

まず、サイトの他の場所で使用した JQuery DatePicker を使用することにしましたが、今回はその DateRange オプションを使用します...

<script type="text/javascript"> //to pick date range
$(function() {
    $( "#from_start" ).datepicker({
        defaultDate: "-2m",
        changeMonth: true,
        numberOfMonths: 2,
        onSelect: function( selectedDate ) {
            $( "#to_end" ).datepicker( "option", "minDate", selectedDate );
        }
    });
    $( "#to_end" ).datepicker({
        defaultDate: "-1m",
        changeMonth: true,
        numberOfMonths: 2,
        onSelect: function( selectedDate ) {
            $( "#from_start" ).datepicker( "option", "maxDate", selectedDate );
        }
    });
});
</script>

...注: この部分も問題なく動作します。次に、ユーザーが日付範囲を選択するためのhtmlフォームを作成しました...

<form method="POST" action="log_activity-export2CSV.php?id=<?php echo $colname_CoachActivityListData ?>">
    Select a date range from <input type="text" id="from_start" name="from_start" value="" /> to <input type="text" id="to_end" name="to_end" value="" />
    <input name="export" type="submit" value="Export CSV" />
</form>

...上記の「すべてのリンクをエクスポート」と同じ「アクション」を指定しました。これがこの質問全体のキッカー/核心です-フォームの選択された値をCSVエクスポートにプッシュする方法がわかりません、選択した日付範囲内でのみダウンロードされるようにします。

誰かが私を導くことができれば、私はそれを感謝します. また、注意してください: これはたくさんのコードです。私は PHP の初心者なので、優しくしてください ;-) ありがとう、-jason。

4

0 に答える 0