我认为你们中的一些人可能已经开始睁大眼睛,因为我的主题在这个论坛中经常被处理。但是,我在这个论坛上还没有找到任何解决方案。
我想通过JSON将JS对象解析为接收PHP站点。我已经多次阅读过关于XMLHttpRequest-Header的正确参数及其对PHP部分的影响。我在其他几个论坛上尝试过相同的解决方案,但是IT简单不适合我。我现在已经整整四个月了。我真的需要一些建议。
这是我的JSON编码JS脚本:
function saveToDB(knotItems) {
var txtobj = knotItems;
var json = JSON.stringify(txtobj);
var url = "http://localhost/projektplaner/tools/DBConnection/writeFileToDB.php";
rq = new XMLHttpRequest();
rq.open("post", url, true);
rq.setRequestHeader('Content-type', 'application/x-www-form-urlencoded; charset=UTF-8');
rq.send("project=" + json);
rq.onreadystatechange = window.open(url);
}
这是由JSON字符串化后生成的JS对象数组knotItem:
[{
"rank": 1,
"name": "Baugrube",
"faz_obj": "2016-05-30T17:52:16.402Z",
"fazInDays": null,
"faz_string": "19.5.2016",
"faz_timestamp": 1463680336402,
"d": "2",
"parallelTask": "seriell",
"fez": ["2016-05-21T17:52:16.402Z", "21.5.2016", "NaN2"],
"fez_dateObj": "2016-05-21T17:52:16.402Z",
"fez_string": "21.5.2016"
}, {
"rank": 2,
"name": "Kellerwände",
"faz_obj": "2016-05-30T17:52:16.402Z",
"fazInDays": null,
"faz_string": "21.5.2016",
"faz_timestamp": 1463853136402,
"d": "4",
"parallelTask": "seriell",
"fez": ["2016-05-25T17:52:16.402Z", "25.5.2016", "NaN4"],
"fez_dateObj": "2016-05-25T17:52:16.402Z",
"fez_string": "25.5.2016"
}, {
"rank": 3,
"name": "Kellerdecke",
"faz_obj": "2016-05-30T17:52:16.402Z",
"fazInDays": null,
"faz_string": "25.5.2016",
"faz_timestamp": 1464198736402,
"d": "5",
"parallelTask": "seriell",
"fez": ["2016-05-30T17:52:16.402Z", "30.5.2016", "NaN5"],
"fez_dateObj": "2016-05-30T17:52:16.402Z",
"fez_string": "30.5.2016"
}]
我发布变量内容的原因是为了显示所有对象键都是双引号,这是PHP的json_decode所要求的。
这是我的PHP接收脚本:
if(isset($_POST['project']))
{
echo json_decode($_POST['project'],true);
}
else
{
echo "Keine Daten"; // No Data
}
这是可以通过Firebug分析看到的参数有效负载:
项目: “[{” 等级 “:1,” 名称 “:” Baugrube “ ”faz_obj“: ”2016-05-30T17:52:16.402Z“, ”fazInDays“:NULL, ”faz_string“:” 2016" 年5月19日, “faz_timestamp”:1463680336402, “d”: “2”, “parallelTask”: “seriell”, “非斯”:[ “2016-05-21T17:52:16.402Z”, “2016年5月21日” “楠2”], “fez_dateObj”: “2016-05-21T17:52:16.402Z”, “fez_string”: “2016年5月21日”},{ “等级”:2 “名称”: “Kellerwände”,” faz_obj “:” 2016-05-30T17:52:16.402Z”, “fazInDays”:NULL, “faz_string”: “2016年5月21日”, “faz_timestamp”:1463853136402, “d”: “4”, “parallelTask”: “seriell”, “非斯”:[ “2016-05-25T17:52:16.402Z”, “2016年5月25日”, “NAN4”], “fez_dateObj”: “2016-05-25T17:52:16.402Z”, “fez_string”: “2016年5月25日”},{ “等级”:3 “名称”: “Kellerdecke”, “faz_obj”: “2016-05-30T17:52:16.402Z”, “fazInDays”:NULL,” faz_string “:” 2016" 年5月25日, “faz_timestamp”:1464198736402, “d”: “5”, “parallelTask”: “seriell”, “非斯”:[ “2016-05-30T17:52:16.402Z”,” 2016" 年5月30日, “NaN5”], “fez_dateObj”: “2016-05-30T17:52:16.402Z”, “fez_string”: “2016年5月30日”}]“
HTTP状态代码始终为200(确定)。
这就是我从PHP文件中获得的。
注意:未定义的索引:第7行的C:\ xampp \ htdocs \ projektplaner \ tools \ DBConnection \ writeFileToDB.php中的项目 Keine Daten
我不想听起来有什么戏剧性的东西,但我想要猿猴。我只是看不出什么是错的。可能是服务器配置问题?
我真的非常感谢你的帮助。
非常感谢您提前。