javascript - 如何通过使用 AJAX 和 PHP 进行迭代将 JSON 数据保存到新的 JSON 文件?
问题描述
我有带有侧边栏的简单电影编辑器,用户只需将元素拖放到右侧用户可以根据需要编辑此元素并将数据保存到 JSON,我希望当用户单击保存它时应该创建一个新文件和保存新数据。
到目前为止,这就是我所拥有的
HTML
<div class="col-2 save-details">
<div id="save-block">
<button type="button" class="btn btn-success btn-save">Save</button>
</div>
</div>
这是保存文件的js
var moviesblocks =null;
$(document).ready(function(){
$.getJSON('moviesblocks.json', function (data) {
moviesblocks = data.moviesblocks;
console.log(moviesblocks);
});
$("#main-btn-save").on("click", function () {
var moviesparams = JSON.stringify({
moviesblocks: moviesblocks
});
$.ajax({
type: 'POST',
data: {
moviesparams: moviesparams
},
url: 'save_movies_block.php',
success: function (data) {
$('#msg').html(data).fadeIn('slow');
$('#msg').delay(2000).fadeOut('slow');
},
error: function () {
$('#error-msg').html(data).fadeIn('slow');
$('#error-msg').delay(2000).fadeOut('slow');
}
});
console.log(moviesparams);
});
})
这是处理该过程的php文件
<?php
if(isset($_POST['moviesparams'])){
$moviesparams = json_decode($_POST['moviesparams']);
// do whatever checks you need on $moviesparams to verify valid data
$success = file_put_contents("moviesblocks.json", json_encode($moviesparams));
if($success === false){
echo "sorry , something is wrong";
die();
}else{
echo "Data successfully saved";
die();
}
} else {
echo "nic";
}
$data=file_get_contents("data.json");
$result=json_decode($data);
?>
正如您现在在用户单击保存后看到的,将其保存到此文件
moviesblocks.json
现在我想当用户点击保存时,它应该保存到新文件moviesblocks1.json
而不是moviesblocks.json
这是一个现场演示现场演示
我怎样才能达到我想要的?
解决方案
如果您不想使用数据库,则需要再创建一个文件来维护文件版本号。每次您想创建新文件时,请从此 version.txt 文件中获取最新版本号并将其附加到文件名中。例如:moviesblocks1.json、moviesblocks2.json。
创建新文件后,从 version.txt 更新版本。这将帮助您下次创建新的版本号。
推荐阅读
- javascript - 平台设置后无法启用 prod 模式
- openapi - 在 OpenAPI 3 中,如何记录请求时需要具有指定值的 Accept 标头才能成功调用 API?
- sql - 如何计算sql server中2个日期之间的天数
- php - 重定向后更改本地化
- python - Jinja 使用 for 列出嵌套 JSON
- python - 具有未知魔法常数的 3x3 魔方(总和)
- javascript - React 应用程序的 Heroku 部署获得 404
- pygame - 添加背景pygame后游戏开始滞后
- apache-spark - 将 py4j.java_gateway.JavaObject 转换为 StructType pyspark
- python - 将包含 Float64 值的 1 个 DataFrame 列拆分为几个