【问题标题】:Creating .JSON file with PHP使用 PHP 创建 .JSON 文件
【发布时间】:2017-05-09 09:54:45
【问题描述】:

我有一个包含input 和提交button 的基本表单。我希望将input 的值转换为JSON,然后将JSON 放在服务器上的文件中以供以后使用。我正在使用 AJAX 和一个小的 PHP 脚本来处理数据和文件创建,但是永远不会创建 JSON 文件 (test.json)。

HTML 标记

<input id="title" type="text" name="title" value="Page Title"/>
<button type="submit" value="submit" id="submit">Submit</button>

JS

var submit = $('#submit');
var title = $('#title');

function createJSON() {
    var jsonObj = [];
    title.each(function() {

        var value = $(this).val();
        var item = {};
        item.title = value;
        jsonObj.push(item);
    });

    $.ajax({
        url:     "create-file.php",
        data: {
            data: jsonObj
        },
        type: "POST"
    });   
}

submit.on('click', function() {
    createJSON();
});

PHP (create-file.php)

<?php
    $json = $_POST['data'];
    $info = json_encode($json);
    $file = fopen('test.json','w+') or die("File not found");
    fwrite($file, $info);
    fclose($file);
?>

JSON

[
    {
        title: "Page Title"
    }
]

【问题讨论】:

  • 你遇到了什么错误?
  • @AlivetoDie 我没有收到错误消息。该脚本可以很好地创建 JSON,它通过 AJAX 调用传递,然后什么也没有。
  • 肯定有错误。您确定没有在脚本位置创建文件吗?
  • $json = $_POST['json']; 必须是$json = $_POST['data'];
  • @AlivetoDie 已更新,谢谢,但问题仍然存在。

标签: javascript php jquery json ajax


【解决方案1】:

你有 data: {data: jsonObj}, 所以在 php 中它必须是:-

$json = $_POST['data'];

在 php 页面中也添加一些错误报告,以便您获得有关错误的详细信息。当所有错误都解决后,然后评论这些行。

像下面这样:-

<?php
    //comment these two lines when errors are resolved
    error_reporting(E_ALL);
    ini_set('display_errors',1);

    $json = $_POST['data']; //json need to be data
    $info = json_encode($json);
    $file = fopen('test.json','w+') or die("File not found");
    fwrite($file, $info);
    fclose($file);exit;
?>

我已经检查过了,它在我的本地端工作

注意:- 你有 title.each(function() { 其中title = $('#title');

以后如果您有多个文本框,请将id 转换为class,如下所示:-

<input class="title" type="text" name="title" value="Page Title"/>

【讨论】:

  • 是的,我愚蠢的$_POST 错误已得到纠正,但现在JSON 文件包含null 而没有其他内容?
  • @Ryan 很高兴为您提供帮助:):)
【解决方案2】:

您好,您需要编写如下代码:

$json = $_POST['data'];//$_POST['json'];    
$info = json_encode($json);    
$file = fopen('test.json','w+') or die("File not found");
fwrite($file, $info);
fclose($file);
die;

它会在文件 test.json 中写入 json,如 [{"title":"Page Title"}]

【讨论】:

  • 谢谢。由于我的愚蠢 $_POST['data'] 错误,这有所帮助,但写入的文件包含 null 而不是 JSON 输出。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-05
  • 1970-01-01
  • 2014-11-27
  • 2018-01-10
  • 2020-02-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多