【问题标题】:Write results to server file将结果写入服务器文件
【发布时间】:2016-08-16 18:32:49
【问题描述】:

我一直在尝试找到一个简单的解决方案来从 json 查询结果中写入结果。

我有一个从 json 查询和 document.write 获取统计信息的文件。

我需要将这些结果打印在服务器上的 csv 或 xml 文件中。

我意识到由于安全风险我不能使用 javascript。但我知道我可以使用 PHP 。或者也许有更简单的解决方案。

由于我对此很陌生,我想知道是否有人可以帮助我解决这个问题。

我的代码如下:

<html lang="en">
<meta charset="utf-8">
<head>
    <script type="text/javascript" src="https://code.jquery.com/jquery-3.1.0.min.js"></script>


</head>


<script>
        var query = {
  "query": [
    {
      "code": "Sveitarfélag",
      "selection": {
        "filter": "item",
        "values": [
          "Alls"
        ]
      }
    },
    {
      "code": "Aldur",
      "selection": {
        "filter": "item",
        "values": [
          "Alls"
        ]
      }
    },
    {
      "code": "Ár",
      "selection": {
        "filter": "item",
        "values": [
          "18"
        ]
      }
    },
    {
      "code": "Kyn",
      "selection": {
        "filter": "item",
        "values": [
          "Alls"
        ]
      }
    }
  ],
  "response": {
    "format": "csv"
  }
};
        query = JSON.stringify(query);
        $.ajax({
              type: "POST",
          url: "http://px.hagstofa.is/pxis/api/v1/is/Ibuar/mannfjoldi/2_byggdir/sveitarfelog/MAN02001.px",
          data:query,
          success: function(json) {
                document.write(json);
        }
    });
</script>
</html>

** 编辑 ** 澄清一下:

我有一个只能读取 xml 或 csv 的应用程序。所以我需要将上述文件的结果打印并保存到一个文件中:“/server/user/htdocs‌​/xml-or-csv/File.csv”

或xml

【问题讨论】:

  • 您想convert 将您的 json 转换为 csv 还是将其发送到服务器?没接到任务,请澄清
  • 我有一个只能读取 xml 或 csv 的应用程序。所以我需要将上述文件的结果打印并保存到一个文件中:“/server/user/htdocs/xml-or-csv/File.csv”
  • 在你发布数据后,你必须在服务器端处理保存部分。 file_put_contents("filename", serialize($data))
  • @KaushalNiraula 你能告诉我一个完整的解决方案吗?
  • 在您的 ajax 请求中执行 url: "xyz/save.php", data:{'data',JSON.stringify(query)} 并在您的 save.php 文件中执行 $data = $_POST['data']; file_put_contents($_SERVER['DOCUMENT_ROOT'].'/pathto/file.xyz',json_decode($data));

标签: javascript php json xml csv


【解决方案1】:

您需要将 php 代码放在处理“http://px.hagstofa.is/pxis/api/v1/is/Ibuar/mannfjoldi/2_byggdir/sveitarfelog/MAN02001.px”的端点中

如果您将此代码保存为 index.php 并将 ajax 的 post url 更改为 index.php,您将获得一个有关如何通过 ajax post 远程保存文件的工作演示

<?php 
    if(isset($_POST['data'])){
        $data = $_POST['data'];
        echo $data;
        //instead of xyz.csv, you need to give the complete path of the file to where you want to store
        file_put_contents("xyz.csv", $data);
    }
    ?>
    <html>
    <head>
        <script type="text/javascript" src = "jquery.js"></script>

        <script>
            var query = {
                "query": [
                {
                    "code": "Sveitarfélag",
                    "selection": {
                        "filter": "item",
                        "values": [
                        "Alls"
                        ]
                    }
                },
                {
                    "code": "Aldur",
                    "selection": {
                        "filter": "item",
                        "values": [
                        "Alls"
                        ]
                    }
                },
                {
                    "code": "Ár",
                    "selection": {
                        "filter": "item",
                        "values": [
                        "18"
                        ]
                    }
                },
                {
                    "code": "Kyn",
                    "selection": {
                        "filter": "item",
                        "values": [
                        "Alls"
                        ]
                    }
                }
                ],
                "response": {
                    "format": "csv"
                }
            }

            $(document).ready(function(){
                $('#btn').click(function(){
                console.log({'data':JSON.stringify(query)});

                $.ajax({
                    type: "POST",
                    url: "http://px.hagstofa.is/pxis/api/v1/is/Ibuar/mannfjoldi/2_byggdir/sveitarfelog/MAN02001.px",
                    data:{'data':JSON.stringify(query)},
                    success: function(json) {

                    }
                });


            })  


            })



        </script>
    </head>
    <body>
        <button id="btn">Click</button>

    </body>
    </html>

【讨论】:

  • 谢谢你的回复,但是它不起作用,我将完整路径设置为我想要写入csv文件的位置,然后也更改了jquery位置......但是我在 POST 上收到 404 错误。它不给出任何结果或保存任何文件。你测试过这个吗?
  • 你把 jquery 的位置改成什么了?处理您在 jquery 中输入的 url 的后端必须处理文件的保存。你不能从 jquery 做到这一点。 Jquery 只将数据传递给服务器。您必须获取并保存从 jquery post 在服务器中获得的内容
  • 我先把它改成了服务器上的本地路径,然后又改成了&lt;script type="text/javascript" src="https://code.jquery.com/jquery-2.1.4.min.js"&gt;&lt;/script&gt;,,两种方式都行不通。我也试过最新版本....
猜你喜欢
  • 2010-11-19
  • 2018-03-21
  • 1970-01-01
  • 2018-07-24
  • 1970-01-01
  • 1970-01-01
  • 2011-08-18
  • 2013-09-24
相关资源
最近更新 更多