【发布时间】:2016-04-27 13:04:02
【问题描述】:
我想将表单数据附加到 json 文件中,这是我的代码,但我不确定我做错了什么。每次我通过帖子提交数据时,我只会收到错误响应。这段代码哪里出错了?
HTML
<form class="ajax form-inline">
<div class="form-group">
<label for="exampleInputAmount">Yo, whats your first name?</label>
<div class="input-group">
<input type="text" class="form-control" id="fname" placeholder="First name">
</div>
</div>
<div class="form-group">
<label for="exampleInputAmount">&& Last name?</label>
<div class="input-group">
<input type="text" class="form-control" id="lname" placeholder="Last name">
</div>
</div>
<button type="submit" class="btn btn-primary">Submit to JSON</button>
</form>
JS/Jquery
$('form.ajax').on('submit', function(){
var $fname = $("#fname")
var $lname = $("#lname")
var object = {
firstname: $fname.val(),
lastname: $lname.val(),
}
var params = JSON.stringify(object);
$.ajax({
type: 'POST',
data: params,
dataType: "json",
url: 'save_to_json.php',
success: function(data) {
console.log('success');
},
error: function(data) {
console.log('error');
},
complete: function() {
console.log('complete');
}
});
return false;
e.preventDefault()
});
PHP / save_to_json.php
<?php
if (!isset($_POST['params']) && !empty($_POST['params'])) {
$params = $_POST['params'];
$jsonObject = json_encode($params);
file_put_contents('my_json_data.json', $jsonObject, FILE_APPEND);
}
else {
echo "Noooooooob";
}
?>
【问题讨论】:
-
您遇到了什么错误?首先你必须用
ajax为submit写e.preventDefault() -
file_put_content 应该是 file_put_contents
-
而不是
console.log('error');或console.log('succes');使用console.log(data);这将为您提供更多详细信息(大部分时间) -
@theblackgigant 谢谢,现在它声明“未捕获的 ReferenceError:数据未定义”
-
@Simon 这可能意味着你没有返回任何东西,尝试在你的 if 语句中添加
echo $jsonObject;,我也认为不需要 FILE_APPEND (虽然不确定)