我试图将数据从输入添加到Actors.json本地文件.这是文件结构:
[
{
"FirstName": "Ricardo",
"Id": 1,
"LastName": "Darin"
},
{
"FirstName": "Bruce",
"Id": 2,
"LastName": "Willis"
}
]
这是输入:
<table>
<tr>
<td>Id:</td>
<td><input type="text" id="ID" /></td>
</tr>
<tr>
<td>First name:</td>
<td><input type="text" id="FirstName" /></td>
</tr>
<tr>
<td>Last name:</td>
<td><input type="text" id="LastName" /></td>
</tr>
<tr>
<td> </td>
<td><input type="button" value="ADD" onclick="AddActor()" /></td>
</tr>
</table>
这是我的addActor函数:
function AddActor(){
$.ajax({
url: 'save.PHP',
method: 'POST',
dataType: 'json',
data: JSON.stringify({'FirstName': $('#FirstName').val(),
'Id': $('#ID').val(),
'LastName': $('#LastName').val()}),
success: function () {alert("Thanks!"); },
error: function() {alert("Error!");}
});
}
但是我不知道在save.PHP文件中放什么,并尝试了几种方法,但没有保存actor.
解决方法:
<table>
<tr>
<td>Id:</td>
<td><input type="text" id="ID" name="ID" /></td>
</tr>
<tr>
<td>First name:</td>
<td><input type="text" id="FirstName" name="FirstName" /></td>
</tr>
<tr>
<td>Last name:</td>
<td><input type="text" id="LastName" name="LastName" /></td>
</tr>
<tr>
<td> </td>
<td><input type="button" value="ADD" onclick="AddActor()" /></td>
</tr>
</table>
更改AddActor()函数:
function AddActor(){
$.ajax({
url: 'save.PHP',
method: 'POST',
data: $('input').serialize(),
success: function(result) {alert("Thanks!"); },
error: function(result) {alert("Error!");}
});
}
$().serialize将格式化所有输入字段,如查询字符串(name = val& name1 = val1格式).
在save.PHP中:
<?PHP
// Adjust the actual location of the file relative
// to the location of the PHP script
$json_str = file_get_contents('Actors.json');
// Convert json string to PHP array
$json_arr = json_decode($json_str, true);
// Make sure this variable is set in case Actors.json is empty
if(!$json_arr) {
$json_arr = array();
}
// Add new data
$json_arr[] = $_POST;
// Encode back to json string and save
$json_str_done = json_encode($json_arr);
file_put_contents('Actors.json', $json_str_done);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。