0

javascript ファイルからサーバー側の php ファイルに値を送信し、jquery ajax post メソッドを使用してサーバー側でファイルを作成します。

いくつかのコードを試してください

JavaScriptコード

  $.ajax({
    type: "POST",
    url: "http://localhost/export/some.php",
    data: { dataString: "hi" },
    cache: false,
    success: function(){
      alert(dataString);
      this.openDestinationURL();
    }
  });

以下のようなphpコード

 header("Pragma: public");
 header("Expires: 0"); 
 header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
 header("Content-Type: text/x-csv");
 header("Content-Disposition: attachment;filename=\"search_results.csv\""); 

if($_POST['data']){
  print $_POST['data'];
}
4

3 に答える 3

1

これを試してみてください

$.ajax({
  type: "POST",
  url: "http://localhost/export/some.php",
  data: { dataString: "hi" },
  cache: false,
  success: function(data){
    alert(data);
    this.openDestinationURL();    
  }
});

ここにphpファイルがあります

<?php
header('Content-Type: application/excel');
header('Content-Disposition: attachment; filename="sample.csv"');
$data =$_POST["dataString"];

$fp = fopen('php://output', 'w');//set the path
fputcsv($fp, $data);
fclose($fp);
?>
于 2013-08-12T09:42:35.517 に答える
0

データを多次元配列として送信

$.post('http://localhost/export/some.php', 
    {data: [["aaa","bbb","ccc","dddd"],["123","456","789"],["aaa","bbb"]]}, 
    function(){
        alert('saved');
    }
);

PHP側では、ファイルに保存するだけです

$output = fopen('path to csv file', 'w');
foreach ($_POST['data'] as $row) {
    fputcsv($output, $row, ';');
}
fclose($output);
于 2013-08-12T09:57:29.863 に答える
0

を送信しているのでdata: { dataString: "hi" }、実際の POST データは次のようになります。

if(isset($_POST['dataString'])){
  print $_POST['dataString'];
}

isset() も使用します。

あなたのAJAXに関して:

  $.ajax({
      type: "POST",
      url: "http://localhost/export/some.php",
      data: { dataString: "hi" },
      cache: false,
      success: function(result){
          alert(result);
          this.openDestinationURL();
      }
  });
于 2013-08-12T09:48:20.030 に答える