Php 通过表单更新JSON?
我有一些手动更新的json,但由于数据是通过电子邮件发送给我的,所以我花在编写json上的时间越多,收到的数据就越多 是否有一种方法可以构建一个表单,该表单将接收一些数据(文本和上传),并将JSON写入/输出到文件或数据库中我尝试过使用Ajax、PHP、MySQL和其他工具进行研究,但运气不佳,请给出建议(给我指出正确的方向) 我的结构:Php 通过表单更新JSON?,php,javascript,mysql,ajax,json,Php,Javascript,Mysql,Ajax,Json,我有一些手动更新的json,但由于数据是通过电子邮件发送给我的,所以我花在编写json上的时间越多,收到的数据就越多 是否有一种方法可以构建一个表单,该表单将接收一些数据(文本和上传),并将JSON写入/输出到文件或数据库中我尝试过使用Ajax、PHP、MySQL和其他工具进行研究,但运气不佳,请给出建议(给我指出正确的方向) 我的结构: { "FirstName": "John", "LastName": "Doe", "Photo": "http://Imag
{
"FirstName": "John",
"LastName": "Doe",
"Photo": "http://ImageURL",
"PhoneNumber": [
{
"MobilePhone": "555-555-5555",
"Provider": "Verizon"
},
{
"HomePhone": "555-555-5555",
"Provider": "AT&T"
},
{
"WorkPhone": "555-555-5555",
"Provider": "SBC"
}
]
}
所需表格
名字:(文本输入)
姓氏:(文本输入)
照片:(上传文件)
(嵌套在“电话号码”下)
手机:(文字输入)
提供者:(文本输入)
家庭电话:(文本输入)
提供者:(文本输入)
工作电话:(文本输入)
提供者:(文本输入)
注意:这是虚拟数据,实际的JSON字典用于音乐专辑,文件地址为
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
move_uploaded_file($_FILES["Photo"]["tmp_name"],"images/".$_POST['Photo']);
$filters=array(
"FirstName",
"LastName",
"Photo",
"MobilePhone",
"MobilePhoneProvider",
"HomePhone",
"HomePhoneProvider",
"WorkPhone",
"WorkPhoneProvider"
);
$final=array();
foreach ($filters as $filter) {
$final[$filter]=$_POST[$filter]?$_POST[$filter]:"";
}
$final["PhoneNumber"]=array(
array(
"MobilePhone"=>$final["MobilePhone"],
"Provider"=>$final["MobilePhoneProvider"],
),
array(
"HomePhone"=>$final["HomePhone"],
"Provider"=>$final["HomePhoneProvider"],
),
array(
"WorkPhone"=>$final["WorkPhone"],
"Provider"=>$final["WorkPhoneProvider"],
)
);
$unsets=array(
"MobilePhone",
"MobilePhoneProvider",
"HomePhone",
"HomePhoneProvider",
"WorkPhone",
"WorkPhoneProvider"
);
foreach ($unsets as $unset) {
unset($final[$unset]);
}
echo json_encode($final);
exit;
}
?><!DOCTYPE html>
<html>
<head>
<title>Contact</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
First Name: <input type="text" name="FirstName"><br>
Last Name: <input type="text" name="LastName"><br>
Photo: <input type="file" name="Photo"><br>
Mobile Phone: <input type="tel" name="MobilePhone"><br>
Mobile Phone Provider: <input type="text" name="MobilePhoneProvider"><br>
Home Phone: <input type="tel" name="HomePhone"><br>
Home Phone Provider: <input type="text" name="HomePhoneProvider"><br>
Work Phone: <input type="tel" name="WorkPhone"><br>
Work Phone Provider: <input type="text" name="WorkPhoneProvider"><br>
<input type="submit">
</form>
</body>
</html>
接触
名字:
姓氏:
照片:
手机:
移动电话提供商:
家庭电话:
家庭电话提供商:
工作电话:
工作电话提供商:
这只是一个开始,您需要进行图像检查和其他各种检查,以确保用户输入有效。(对于此测试,您应该创建一个名为
images
)的文件夹。几个库(如Backbone.js)提供了有用的方法。查看此问题()的答案,看看这是否符合您的需要
也就是说,您是否考虑过正常发布表单,然后用PHP函数将其保存到数据库中?除非出于某种原因(通常不推荐)需要将其作为字符串化JSON放入数据库,否则您可以通过正常的INSERT调用将数据保存到MySQL数据库中。(请参阅本教程:)如果您有一个数据库,为什么要将其保存为JSON格式?将每个表单字段保存到相应的数据库列中。但是,如果要保存到平面文件,只需将所有表单数据写入数组并将
json_encode()
写入该文件即可。您已经提供了在数据库中创建表所需的几乎所有字段。对于不断更新/增长的数据,数据库总是更好。将值存储在JSON或XML中时,最好将其保存在不会发生太大变化的静态数据中。@francisco.preller我如何构建表单将数据输入到数据库中,并且我需要JSON从该数据库输出,因为我的网站和我正在使用的移动应用程序依赖于该数据(JSON)您可以将PHP数组数据转换为JSON,如所选答案所示。您不需要检索数据,只需查询数据库,然后将结果转换为JSON。表单工作正常,但如何将上传的文件保存到服务器并输入到JSON,以及如何将JSON文件保存到服务器(但所有数据都需要收集到一个.JSON文件中)你是说多个用户将被放置在一个json中?这是可能的,但您是否尝试过数据库方法?