【发布时间】:2015-11-25 20:49:00
【问题描述】:
我在使用 ajax/jQuery 和 PHP 写入 JSON 文件时遇到了一些问题。 我目前的代码是:
jQuery
var object = {
name: 'John',
occupation: 'Lawyer'
}
$(".testing-php").click(function () {
$.ajax({
type: 'POST',
data: {params:object},
url: 'details.php',
success: function (data) {
console.log(object);
alert('success');
},
error: function () {
alert('error');
}
});
这部分似乎工作正常,因为 console.log 语句正确显示 - {"name":"John","occupation":"Lawyer"}
我的 PHP 文件目前是这样的:
<?php
var_dump($_POST);
if (isset($_POST['params']) && strlen($_POST['params'])) {
$params = $_POST['params'];
$jsonObject = json_encode($params);
if (is_writable('js/details.json')) {
file_put_contents('js/details.json', $jsonObject);
echo "success";
} else {
echo "file is not writable, check permissions";
}
} else {
echo "invalid params";
}
?>
最后,当前的 JSON 文件如下所示:
{
"name": "Neil",
"occupation": "web developer"
}
更新
这是 var_dump($_POST) 显示的信息。连同消息 .invalid params'。
array(1) {
["params"]=>
array(2) {
["name"]=>
string(4) "John"
["occupation"]=>
string(6) "Lawyer"
}
}
invalid params
AJAX 请求参数位于两个不同的行,显示为
参数[名称]:“约翰”
参数[职业]:“律师”
我现在只是对值进行硬编码,直到我让流程正常工作。谁能告诉我我在这里做错了什么,因为 JSON 文件没有被写入?
非常感谢
【问题讨论】:
-
肯定有问题,John the Lawyer 正在以 Neil 网络开发人员的身份写入文件...... :-)
-
这只是我放入文件中的一些 json,将被写入其中的新 json 替换
-
我知道,开玩笑的。尝试在
data: params,下添加processData: false, -
运气不好,谢谢。它似乎可以很好地发布到 php 文件,但此时似乎有一些错误
-
在 php 中只是 var_dump($_POST);看看会发生什么