2012-06-04 2 views
0

전체 테이블 데이터를 csv 파일에 쓰려면 jquery $ .post를 사용하여 서버 측에 json으로 HTML 테이블 데이터를 게시합니다. 하지만 이것은 사용자가 다운로드 할 수있는 CSV 파일을 출력하지 않습니다.jquery를 사용하여 게시 한 후 csv를 작성하고 다운로드하십시오.

내가 CSV 파일을 팝업 할 (우리가 파일을 다운로드 할 때 일반적으로 발생한다. 당신이 SAVE 또는 CSV에 대한 OPEN 상자 알)

클라이언트 측 코드를

//selectedData is having the data as json 

$.post('ajax/csv_download.php', { 
    selectedData: JSON.stringify(selectedData) 
}, function(html){ }); 

서버 당신은 CSV의 FIL의 내용을 쓰고 싶어처럼 사이드 코드

global $fh; 
    $fh = @fopen('php://output', 'w'); 
    $post_data = json_decode($_POST['selectedData']); 
    foreach ($post_data as $arr) 
    { 
    $val1 = $arr->val1 ; 
    $val2 = $arr->val2 ; 
    $val3 = $arr->val3 ; 
    $val4 = $arr->val4 ; 
    $val5 = $arr->val5 ; 
     $out = array($val1,$val2,$val3,$val4,$val5); 
     fputcsv($fh, $out); 
     } 
+0

error-supressor를 제거하면 어떻게됩니까? –

+0

죄송합니다. 오류 supressor를 이해하지 못했습니다. – phpgeek

+0

나는 이것을 시도하지 않았지만 이것이 문제가 아닙니다. jquery 응답시 파일에 기록해야하는 데이터가 나타납니다. – phpgeek

답변

0

는 소리 e를 'Content-Type'을 'text/plain'으로 설정 한 후 브라우저로 다시 보냅니다. 웹 브라우저 구성 방법에 따라 사용자에게 파일을 저장/열기하라는 메시지가 표시됩니다.

<?php 
    $content="name,age,height,weight,gender"; 
    $file="persons.csv"; 

    header("Content-Type: text/plain"); 
    header("Content-disposition: attachment; filename=$file"); 
    header("Content-Transfer-Encoding: binary"); 
    header("Pragma: no-cache"); 
    header("Expires: 0"); 

    echo "$content"; 
?> 
관련 문제