如何使用PHP将数据从不同的html页面连续读取到JSON文件的一个大括号中?

时间:2018-09-16 05:20:11

标签: php html json

我设法使用JSONPHP文件中提取数据。我是PHPJSON中的新手。我制作了一些html表单页面,并且我希望将登录的同一个人的数据保存在JSON文件中的相同大括号中。另外,我没有JSON文件的“父”和“子”类型,在会员ID中作为父项,而姓名,年龄,性别等作为子项。

例如,这是我的JSON文件(member.json)中同一个人的两页html表单(即注册和选择票证页面)中的内容:

{
   "name": "iron man",
   "age": "54",
   "gender": "male",
   "email": "i@r.m",
   "username": "ironman",
   "Password": "ironman",
   "submit": "Submit"
}{
   "Journey_From": "Segambut",
   "Journey_To": "Kepong",
   "date": "2018-09-12",
   "time": "15:43",
   "Quantity": "3",
   "submit": "Proceed"
}

我不知道如何将来自同一个人的不同html形式的两个输入放入一个{}

我希望它像这样:

{
   "name": "iron man",
   "age": "54",
   "gender": "male",
   "email": "i@r.m",
   "username": "ironman",
   "Password": "ironman",
   "submit": "Submit"
   "Journey_From": "Segambut",
   "Journey_To": "Kepong",
   "date": "2018-09-12",
   "time": "15:43",
   "Quantity": "3",
   "submit": "Proceed"
}

我在两个html页面中都使用了此代码,以将页面的输入发送到member.json文件。

 <?php
   if(isset($_POST['submit'])) {
      $file = "member.json";
      $json_string = json_encode($_POST, JSON_PRETTY_PRINT);
      file_put_contents($file, $json_string, FILE_APPEND); 
   }
 ?>

使用“ die”代码后:

  array(7) { ["name"]=> string(4) "haha" ["age"]=> string(2) "34" ["gender"]=> string(4) "male" ["email"]=> string(5) "d@w.f" ["username"]=> string(4) "haha" ["Password"]=> string(4) "haha" ["submit"]=> string(6) "Submit" }

1 个答案:

答案 0 :(得分:0)

您可以使用arary_merge()函数来完成此操作。 在放置任何内容之前,请检查json文件。如果有任何可用的内容,您可以将这些json_data提取为数组并将其与当前内容合并。然后将新的合并数组推送到json文件。 您可以查看有关我在说什么的演示代码。

append.php

<?php
function append($file, $new_json) {
    $file_content = file_get_contents($file);
    $previous_json = json_decode($file_content, true);

    $previous_json == null ? $previous_json = [] : $previous_json = $previous_json; 
    $new_data = array_merge($previous_json, $new_json);

    $json_string = json_encode($new_data, JSON_PRETTY_PRINT);
    file_put_contents($file, $json_string); 
}

然后在您要插入数据的任何页面中,仅require append.php文件就是这样

<?php 
    include_once 'append.php';
    if(isset($_POST['submit'])) {
        $file = "member.json";
        $newData = $_POST;
        append($file, $newData);
    }
?>

注意:您可以使用submit1submit2获取两个 submit 值。 请检查此内容以进一步了解array_merge http://php.net/manual/en/function.array-merge.php