2017-12-13 4 views
1

내 작업 표를 CSV 파일로 변환 중입니다. user_id, start_dateend_date을 사용하여 필터링해야합니다. 필터링 후에는 전체 파일을 CSV 파일로 변환하지만 필터링은 포함하지 않습니다.ajax 변수가 codeigniter를 사용하여 컨트롤러에 전달되지 않습니다.

다운로드를 클릭하면, AJAX를 사용하여 start_dateend_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); 

     } 
+0

작업 표는 어떤 형식으로되어 시도? 뛰어나다? – tukan

+1

여기를 보시고 https://stackoverflow.com/a/5046951/578855 게시물 데이터를 보내는 방법을 확인하십시오 – muasif80

답변

1

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/"+user_id, 
     data: {'start_date': start_date,'end_date':end_date}, 
     success: function(data){ 
      document.location.href = '<?php echo site_url('timesheetmanager/timesheet/getcsv/'); ?>'+'/'+user_id; 
     } 
     }); 
} 
+0

고맙습니다. –

+0

비활성화하면 (document.location.href = ' '+'/ '+ user_id;)이 줄에서는 매개 변수 값이 전달됩니다. –