使用jquery将新对象添加到Json文件

时间:2018-01-21 22:50:55

标签: jquery html json forms

我有一个带有一些数据的简单json文件。 例如:

{ "id": 1,
    "name": "Porsche",
    "type": "911", 
    "price": "135000", }`         

我必须使用这些输入(名称,类型,价格)创建一个html表单,如果用户单击提交按钮,它会将新对象添加到json文件。

只能使用jquery,js和html吗?

1 个答案:

答案 0 :(得分:1)

如果您使用apache之类的东西托管您的网站,则无法使用html和js在服务器端保存数据。为此,您需要某种后端逻辑。例如,这可以通过PHP完成。如果你使用PHP,下面的代码会做你想要的:

<?php


   $myFile = "data.json";
   $arr_data = array(); // create empty array

  try
  {
       //Get form data
       $formdata = array(
          'id'=> $_POST['id'],
          'name'=> $_POST['name'],
          'type'=>$_POST['type'],
          'price'=> $_POST['price']
       );

       //Get data from existing json file
       $jsondata = file_get_contents($myFile);

       // converts json data into array
       $arr_data = json_decode($jsondata, true);

       // Push user data to array
       array_push($arr_data,$formdata);

       //Convert updated array to JSON
       $jsondata = json_encode($arr_data, JSON_PRETTY_PRINT);

       //write json data into data.json file
       if(file_put_contents($myFile, $jsondata)) {
            echo 'Data successfully saved';
        }
       else 
            echo "error";

   }
   catch (Exception $e) {
            echo 'Caught exception: ',  $e->getMessage(), "\n";
   }

?>

除此之外,您还必须创建一个html格式:

<html>
   <head>
   </head>
   <body>
      <form action="save.php" method="POST">
         <input type="text" name="name"/>
         <!-- INSERT YOUR HTML-INPUTS HERE -->
      </form>
   </body>
</html>

如果您还不熟悉PHP,请查看以下内容:https://www.w3schools.com/php/php_intro.asp