jQuery发布并导出到XLS文件

时间:2014-02-14 19:00:44

标签: php jquery mysql ajax excel

帮帮我,我想将日期导出到按日期排序的xls文件。但我不知道如何解决这个问题。

这是我的jQuery代码:

$('#report_xls').live("click", function(){
    var url = "ticket.report.php";
    var startdate = $('input:text[name=startdate]').val();
    var enddate = $('input:text[name=enddate]').val();
    $.post(url, {startdate: startdate, enddate: enddate} ,function() {
        window.location.href = 'ticket.report.php';
    });

});

这是导出xls文件的代码或“ticket.report.php”

<?php
/*
Cetak Laporan Ticket XLS
*/
error_reporting(E_ALL);
ini_set('display_errors', 1);
include"../akses.php";
include"session.php";
include"koneksi.php";
$startdate =$_POST['startdate'];
$enddate = $_POST['enddate'];
$date1 = DateTime::createFromFormat('d-m-Y', $startdate)->format('Y-m-d');
$date2 = DateTime::createFromFormat('d-m-Y', $enddate)->format('Y-m-d');
header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header("Cache-Control: max-age=0");
header("Content-Type: application/force-download");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Expires,0");
header("Content-disposition:attachment; filename=ticket-report-".date('d-m-Y').".xls");
echo'<table align="center" border="1"
<thead>
<tr>
    <th style="background: #EEE; font-weight: bold;">No.</th>
    <th style="background: #EEE; font-weight: bold;">Nama Pelanggan</th>
    <th style="background: #EEE; font-weight: bold;">Tipe Tiket</th>
    <th style="background: #EEE; font-weight: bold;">Tipe Paket</th>
    <th style="background: #EEE; font-weight: bold;">Status Tiket</th>
    <th style="background: #EEE; font-weight: bold;">Tanggal Mulai</th>
    <th style="background: #EEE; font-weight: bold;">Tanggal Selesai</th>
    <th style="background: #EEE; font-weight: bold;">Tanggal Report</th>
</tr>
</thead>
<tbody>
';
$ambil_data = mysql_query("SELECT * FROM report,tiket,pelanggan,manager,bagian where report.id_tiket = tiket.id_tiket AND tiket.id_pelanggan = pelanggan.id_pelanggan AND report.id_manager =manager.id_manager AND manager.id_manager = '$id_manager' AND manager.id_bagian = bagian.id_bagian AND report.tgl_tiket >='" . $date1 . "' AND report.tgl_tiket <= '" . $date2 . "'");
echo '';
$no = 1;
while($data_report=mysql_fetch_array($ambil_data)){
$nama_pelanggan = $data_report['nama_pimpinan'];
$tipe_tiket = $data_report['tipe_tiket'];
$tipe_paket = $data_report['tipe_paket'];
$status_tiket =$data_report['status_report'];
$tanggal_mulai =$data_report['tgl_mulai'];
$tanggal_selesai =$data_report['tgl_selesai'];
$tanggal_report =$data_report['tgl_tiket'];
echo'
<tr>
    <td>'.$no++.'.</td>
    <td>'.$nama_pelanggan.'</td>
    <td>'.$tipe_tiket.'</td>
    <td>'.$tipe_paket.'</td>
    <td>'.$status_tiket.'</td>
    <td>'.$tanggal_mulai.'</td>
    <td>'.$tanggal_selesai.'</td>
    <td>'.$tanggal_report.'</td>
</tr>
';
}
echo'
</tbody></table>
';

?>

我无法从发布数据中获取价值,并且在将格式日期从 D-M-Y 更改为 Y-M​​-D

时出现错误

我希望你能帮助我解决这个错误。感谢。

2 个答案:

答案 0 :(得分:0)

1)将php文件ticket.report.php重命名为ticket report.php 2)

$.post(url, {startdate: startdate, enddate: enddate} ,function() {
        alert('voila done!!');
    });

如果有任何问题请试试这个

答案 1 :(得分:0)

嗯,你可以这样做,但你必须使用$ _GET而不是$ _POST。

$('#report_xls').live("click", function(){    
    var startdate = $('input:text[name=startdate]').val();
    var enddate = $('input:text[name=enddate]').val();
    var url = "ticket.report.php?startdate="+startdate+"&enddate="+enddate;
    $("body").append("<iframe src='" + url + "' style='display: none;' ></iframe>");
});