如何使用AJAX将新数据写入.json文件,以通过php脚本使用其他数据更新.json文件。 假设我在JSON文件中有以下项目。
[{"task":"get milk","done":false},
{"task":"get broccoli","done":false},
{"task":"bring rian","done":false},
{"task":"go to school","done":false}]
现在我想从html页面添加一个项目
{"task":"buy milk","done":false}
我的html页面看起来像
Task:<input type="text" id="task" placeholder="what needs to be done?">
<input type="button" value="ADD TASK" id="button">
如何通过jQuery中的php做到这一点?
答案 0 :(得分:2)
我们可以先使用file_get_contents获取所有内容。
现在使用json_decode解码该数组。创建一个stdClass并创建匿名对象并分配通过AJAX请求获取的值。
以下示例可以帮助您在数组末尾创建和添加新对象。只需file_put_contents可以写回文件。
$array = json_decode('[{"task":"get milk","done":false},
{"task":"get broccoli","done":false},
{"task":"bring rian","done":false},
{"task":"go to school","done":false}]', true);
$object = new stdClass();
$object->task = "milk";
$object->done = "false";
$array[] = $object;
$new_arr = json_encode($array);
中的AJAX请求
答案 1 :(得分:0)
我首先将它们转换为数组:
$array = json_decode('[{"task":"get milk","done":false},
{"task":"get broccoli","done":false},
{"task":"bring rian","done":false},
{"task":"go to school","done":false}]', true);
然后将新的附加到数组中:
$array[] = array(
"task" => $_REQUEST["task"],
"done" => false
);
然后我将它转换回JSON。
$json = json_encode($array);
一个问题是,当您这样做时,您没有正确传递task
的值。您尚未在输入中指定name
属性:
<input type="text" name="task" id="task" placeholder="what needs to be done?" />
//-----------------^^^^^^^^^^^
答案 2 :(得分:0)
你可以使用提交表单来获取这个,这里是post的代码,你也可以使用get方法。
PHP:
$tasks = json_decode(file_get_contents($taskFilePath), true);
$tasks[] =array("task" => $_POST["task"], "done" => $_post["done"]);
file_put_contents($taskFilePath, json_encode($tasks));