Ajax / php创建一个数组 - 如何以.txt的形式下载给用户?

时间:2013-12-13 22:21:44

标签: javascript php ajax arrays

我有一个php文件,“php-1”,它构建了一个html页面。

它要求用户输入一些内容 用户单击“getIDs”按钮(顺便说一下,有几个具有相同名称的按钮)

该输入被带入js / Ajax调用,将输入参数传递给“php-2。(传递的参数实际上被分配给被点击的按钮)

php-1

<script type="text/javascript">

jQuery(document).ready(function(){ 

  jQuery(document).find('button#getIDs').click(function(button){
    var parm1 = jQuery(this).attr('source_id');
    $.ajax({
      type: "POST",     
      url: "process-test.php?source_id="+parm1,
      cache: false,
      success: function(n) {    
        alert("complete");      
        } 
    }); 
 });
});
</script>

“php-2”接受POST参数(我认为它确实是一个GET)并对外部网站执行API调用,该网站返回2个数组。恩。 [111,222,333,444,555]和[aaa,bbb,ccc]

(我知道正在构建数组,因为我将数组内容保存到服务器文件中)

数组被“回显”回Ajax代码。

PHP-2:

echo $results123;
echo $resultsABC;

我希望将这个数组保存在用户机器上的2个单独文件中,提示用户输入目录和.txt文件名,每行包含一个数组元素:

档案1

111
222
333
...

文件2:

aaa
bbb
ccc

我如何实现这一目标?

提前致谢!

顺便说一句,感谢所有SO成员。你已经节省了我几天的努力。希望能够为社区做出贡献。

干杯, 西蒙。

1 个答案:

答案 0 :(得分:0)

你可以写一个文件并用JSON编码数组,比如

  $location="path/to/file.txt";
  $file = fopen($location,"w");
  $content = JSON_encode($results123).JSON_encode($resultsABC);
  fwrite($file,$content);
  fclose($file);

然后,下载文件

header("Content-Disposition: attachment; filename=\"" . basename($file) . "\"");
header("Content-Type: application/force-download");
header("Content-Length: " . filesize($file));
header("Connection: close");