我有一个基本表单,其中包括一个输入
和一个提交按钮
。我想将 input
的值转换为 JSON
然后将 JSON
放在服务器上的文件中以供使用之后。我正在使用 AJAX 和一个小的 PHP
脚本来处理数据和文件创建,但是 JSON
文件 (test.json
) 是从未创建。
HTML 标记
<input id="title" type="text" name="title" value="Page Title"/>
<button type="submit" value="submit" id="submit">Submit</button>
JS
var submit = $('#submit');
var title = $('#title');
function createJSON() {
var jsonObj = [];
title.each(function() {
var value = $(this).val();
var item = {};
item.title = value;
jsonObj.push(item);
});
$.ajax({
url: "create-file.php",
data: {
data: jsonObj
},
type: "POST"
});
}
submit.on('click', function() {
createJSON();
});
PHP(创建文件.php)
<?php
$json = $_POST['data'];
$info = json_encode($json);
$file = fopen('test.json','w+') or die("File not found");
fwrite($file, $info);
fclose($file);
?>
JSON
[
{
title: "Page Title"
}
]
最佳答案
你有 data: {data: jsonObj},
所以在 php 中它需要是:-
$json = $_POST['data'];
在 php 页面中也添加一些错误报告,以便您获得有关错误的详细信息。当所有错误都解决后,然后注释这些行。
像下面这样:-
<?php
//comment these two lines when errors are resolved
error_reporting(E_ALL);
ini_set('display_errors',1);
$json = $_POST['data']; //json need to be data
$info = json_encode($json);
$file = fopen('test.json','w+') or die("File not found");
fwrite($file, $info);
fclose($file);exit;
?>
我已经检查过了,它在我的本地端工作
注意:- 你有 title.each(function() {
where title = $('#title');
。
将来,如果你有多个文本框,那么将 id
转换为 class
,如下所示:-
<input class="title" type="text" name="title" value="Page Title"/>
关于javascript - 使用 PHP 创建 .JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43866645/