【发布时间】:2017-12-13 11:31:07
【问题描述】:
我正在将我的时间表转换为 CSV 文件。我需要使用user_id、start_date 和end_date 对其进行过滤。过滤后,将整个文件转换为 CSV 文件,但不包括过滤。
点击下载时,我已使用 AJAX 将 start_date 和 end_date 发送到我的控制器。但是,我只得到这些数据的空值。您能帮我并告诉我为什么我的控制器中没有正确打印数据吗?
点击下载的AJAX代码为:
function get_csv()
{
var user_id=$('#user').val();
var start_date=$('#start_date').val();
var end_date=$('#end_date').val();
$.ajax({
type: "POST",
url: "<?php echo site_url();?>/timesheetmanager/timesheet/getcsv",
data: '&start_date='+start_date+'&end_date='+end_date,
success: function(data){
document.location.href = '<?php echo site_url('timesheetmanager/timesheet/getcsv/'); ?>'+'/'+user_id;
}
});
}
控制器:
function getcsv($user_id)
{
$userid=$user_id;
$start_date=$this->input->post('start_date');
$end_date=$this->input->post('end_date');
$this->db->where('id',$userid);
$user_query=$this->db->get('users');
$user_result=$user_query->row();
if($userid != "0")
{
$this->db->where('emp_id',$userid);
}
if(($start_date != 'Start Date')&& ($end_date != 'End Date'))
{
$startdate=@date('Y-m-d',strtotime($this->input->post('start_date')));
$enddate=@date('Y-m-d',strtotime($this->input->post('end_date')));
$datequery= $this->db->where("update_date BETWEEN '$startdate' and '$enddate'");
}
$header_name=array('TASK NAME','DESCRIPTION','HOURS SPEND','DATE');
$this->db->order_by('id','desc');
$query = $this->db->get('timesheet');
$this->db->where('emp_id',$userid);
$getRes = $query->result_array();
$filename = ''.$name.date('Y-m-d').'.csv';
header('Content-Type: text/csv; charset=utf-8');
header('Content-Type: application/vnd.ms-excel');
header("Content-Disposition: attachment; filename=$filename");
$finalData[]=$user_result->name;
$output = fopen('php://output', 'w');
fputcsv($output,$header_name);
$finalData = array();
$fp = fopen('php://output','w');
foreach( $getRes as $data)
{
$finalData[]=$data['task_name'];
$finalData[]=$data['description'];
$finalData[]=$data['hours_spend'];
$finalData[]=$data['update_date'];
fputcsv($output, $finalData);
unset($finalData);
}
fclose($fp);
}
【问题讨论】:
-
时间表是什么格式的? Excel?
-
看看这里stackoverflow.com/a/5046951/578855 看看如何发送帖子数据
标签: ajax codeigniter