Javascript js obj->;json文件(ajax、php)
我目前收到200绿色响应,但是我的数据仍然没有写入我的json文件(即,它仍然是空的) JavaScript:Javascript js obj->;json文件(ajax、php),javascript,php,json,ajax,Javascript,Php,Json,Ajax,我目前收到200绿色响应,但是我的数据仍然没有写入我的json文件(即,它仍然是空的) JavaScript: $(function() { $('form#saveTemp').submit(function() { let savdAta = JSON.stringify($('form#saveTemp').serializeObject()); //let tempName = savdAta.styleName; console.
$(function() {
$('form#saveTemp').submit(function() {
let savdAta = JSON.stringify($('form#saveTemp').serializeObject());
//let tempName = savdAta.styleName;
console.log(savdAta);
//console.log(JSON.stringify($('form#saveTemp').serializeObject()));
$.ajax({
url: './php/data.php',
type: 'POST',
contentType: "application/json",
data: {
template: savdAta
},
success: function(msg) {
console.log('data sent to php file, but..');
}
});
return false;
});
});
控制台中来自savdAta
的数据格式如下:即
PHP:
您的POST变量是模板
,只有在未设置且不为空的情况下才执行,这不是您想要的,而且无论如何也不会计算为真
:
//Not needed
//header('Content-Type: application/json');
if (!empty($_POST['template'])) {
$savdAta = $_POST['template'];
//This is already JSON
//$jsonObject = json_encode($savdAta);
file_put_contents('./data.json', $savdAta);
}
摆脱contentType:“application/json”,
$\u POST['savdAta']
是JSON,但顶级POST数据不是。愚蠢的错误:if(!isset($\u POST['savdAta']))
。您仍然可以删除该条件,因为empty
检查isset
。变量名savdAta
不会发送到PHP-因此您不会将其视为POST变量-一旦您修复了contentType,您可能会在模板中发送数据POST变量-因为这是您在n代码如果条件不成立,您的代码实际上什么也不做,并返回200
如果条件不成立。您可能需要附加几行代码来指示错误条件。谢谢;但是即使有所有建议:我的数据,即{“styleName”:“fillType”:“none”,“fillTrans”:“0”}不会写入json文件谢谢,即使这样,json文件也是完全空白的….error\u reporting(E\u ALL);ini\u set('display\u errors','1');
到文件顶部查看错误。
<?php
header('Content-Type: application/json');
if (!isset($_POST['savdAta']) && !empty($_POST['savdAta'])) {
$savdAta = $_POST['savdAta'];
$jsonObject = json_encode($savdAta);
file_put_contents('./data.json', $jsonObject);
}
<?php
if (!empty($_POST['template'])) {
$savdAta = $_POST['template'];
file_put_contents('./data.json', $savdAta);
}
//Not needed
//header('Content-Type: application/json');
if (!empty($_POST['template'])) {
$savdAta = $_POST['template'];
//This is already JSON
//$jsonObject = json_encode($savdAta);
file_put_contents('./data.json', $savdAta);
}