使用jquery发布后编写和下载csv

时间:2012-06-04 15:39:38

标签: php jquery html ajax csv

我使用jquery $ .post将HTML表格数据作为json发布到服务器端,用于将整个表格数据写入csv文件。但这并没有输出csv作为用户可下载。

我想弹出csv文件(通常在我们下载文件时发生。你知道csv的SAVE或OPEN框)

客户端代码

//selectedData is having the data as json 

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

服务器端代码

   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);
      }

1 个答案:

答案 0 :(得分:0)

在php中将'Content-Type'设置为'text / plain'之后,您想要将CSV文件的内容写回浏览器。根据Web浏览器的配置方式,它将提示用户保存/打开文件。

<?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";
?>