Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php jqueryajax发布数据并获取文件_Php_Jquery_Ajax_Json_Codeigniter - Fatal编程技术网

Php jqueryajax发布数据并获取文件

Php jqueryajax发布数据并获取文件,php,jquery,ajax,json,codeigniter,Php,Jquery,Ajax,Json,Codeigniter,我正在编写一个应用程序,它必须使导出的json文件充满数据。 我没有这台机器上的代码给你看,所以我要开门见山了。 我有一个HTML表格和一个按钮。 点击按钮由jQuery函数处理,该函数从表单收集所需数据并将其放入数组。 接下来发生的事情是AJAX POST请求。 post将数组发送到一个PHP方法,该方法生成json文件。 我不想将文件保存到服务器上,所以我手动设置头以强制下载生成的文件。这意味着我没有任何物理链接到该文件。 问题是我没有任何下载对话框。我认为jqueryajax函数阻止了它。

我正在编写一个应用程序,它必须使导出的json文件充满数据。 我没有这台机器上的代码给你看,所以我要开门见山了。 我有一个HTML表格和一个按钮。 点击按钮由jQuery函数处理,该函数从表单收集所需数据并将其放入数组。 接下来发生的事情是AJAX POST请求。 post将数组发送到一个PHP方法,该方法生成json文件。 我不想将文件保存到服务器上,所以我手动设置头以强制下载生成的文件。这意味着我没有任何物理链接到该文件。 问题是我没有任何下载对话框。我认为jqueryajax函数阻止了它。 如何获取下载对话框? 好的,这里有一些代码

PHP

JS


您需要设置标题:

public function download_json()
{

    $a = array(
        'test1' => 1,
        'test2' => 2,
        'test3' => 3
    );

    $data = json_encode($a);
    $filename = 'testjson';
    header('Content-Type: application/json');
    header('Content-Disposition: attachment; filename=' . $filename);
    echo $data;


}

目前还不清楚force_download在头文件方面的具体作用,但这应该是可行的。

如果没有可用的代码,不要问问题为什么?我详细解释了一切。你不能想象现在的情况吗?到时候再也不会有酒了Orson Wellesi我可以想象情况有一百万种变化,这就是问题所在当你得到代码时编辑这个问题
$("button.export").click(function () {
    var dataArr = [];
    $.each($("tr.data"), function (index, element) {
        dataArr.push($(element).data("rowid")
            + "@" + $(element).find("select[name='model']").val()
            + "#" + $(element).find("select[name='mod']").val()
        );
    });
    $.post("http://localhost/index.php/AJAX/GetFile", {data: dataArr});
});
public function download_json()
{

    $a = array(
        'test1' => 1,
        'test2' => 2,
        'test3' => 3
    );

    $data = json_encode($a);
    $filename = 'testjson';
    header('Content-Type: application/json');
    header('Content-Disposition: attachment; filename=' . $filename);
    echo $data;


}