내 작업 표를 CSV 파일로 변환 중입니다. user_id
, start_date
및 end_date
을 사용하여 필터링해야합니다. 필터링 후에는 전체 파일을 CSV 파일로 변환하지만 필터링은 포함하지 않습니다.ajax 변수가 codeigniter를 사용하여 컨트롤러에 전달되지 않습니다.
다운로드를 클릭하면, 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'))
{
[email protected]('Y-m-d',strtotime($this->input->post('start_date')));
[email protected]('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);
}
작업 표는 어떤 형식으로되어 시도? 뛰어나다? – tukan
여기를 보시고 https://stackoverflow.com/a/5046951/578855 게시물 데이터를 보내는 방법을 확인하십시오 – muasif80