清空$ _POST数组通过JSON

时间:2016-05-19 17:59:37

标签: php json

我认为你们中的一些人可能已经开始睁大眼睛,因为我的主题在这个论坛中经常被处理。但是,我在这个论坛上还没有找到任何解决方案。

我想通过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

我不想听起来有什么戏剧性的东西,但我想要猿猴。我只是看不出什么是错的。可能是服务器配置问题?

我真的非常感谢你的帮助。

非常感谢您提前。

0 个答案:

没有答案