我在寻求让 PHP 可以使用这个 JSON 的过程中遇到了一个又一个的障碍,所以我想知道是否有人可以在这里帮助我。
我将 JSON 存储在变量 partitionsJSON 中:
var divisionsJSON = JSON.stringify(divisions);
然后我尝试使用 .ajax 发布以下内容:
$.ajax({
url: "divisions.php",
type: "post",
data: divisionsJSON,
success: function(){
alert("success");
$("#result").html('submitted successfully');
},
error:function(){
alert("failure");
$("#result").html('there is error while submit');
}
});
(我从另一个关于 SO 的问题中复制了这个,但在我的 html 中没有任何 id="result" - 我想我可以删除那部分 [已确认删除])
然后,我的 divisions.php 页面包含以下内容:
<?php
$url = "divisions.php";
$json = file_get_contents($url);
$json = utf8_encode($json);
$elements = json_decode($json);
var_dump($elements);
?>
我对 PHP/ajax 的缺乏经验加上我对让它工作的挫败感让我尝试了很多不同的事情。到目前为止,当我加载 Divisions.php 时,我要么得到 NULL,要么什么都没有。我的直觉告诉我,这是 ajax 的问题,但我对 PHP 非常缺乏经验,因此我不能自信地说我的 PHP 足够正确,我应该得到一些回报。我已经尝试过 var_dump、print_r、echo,但与实际 PHP/JSON 相关的 Divisions.php 上绝对没有出现任何内容。任何和所有的帮助将不胜感激!
更新代码的响应:
我在没有 utf8 行的情况下使用以下 php 得到 NULL,当我在 utf8 行中添加时,我得到了 string(0) "" :
<?php
$json = json_decode(file_get_contents('php://input'));
$elements = utf8_encode($json);
var_dump($elements);
?>
有任何想法吗?
编辑完整的php页面:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>untitled</title>
<link rel="stylesheet" href="styles/reset.css" />
</head>
<body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="underscore.js"></script>
<script type="text/javascript" src="application.js"></script>
<script type="text/javascript" src="divisions.js"></script>
<?php
print_r($_POST);
?>
</body>
</html>
我已经为 php、print_r($_POST);、json_decode($_POST); 等尝试了多行,但我根据我在其他 SO 和这个页面上看到的内容更改了很多东西我真的发呆了。
编辑:我打算制作一个数组的这段代码不会产生 JSON 吗?因为它看起来不像我正在使用 JSON atm。
var divisions = [];
for (var i = 0; i < arr.length; i++) {
if(arr[i].value != "N/A"){
var obj = { "login": arr[i].login,
"value": "http://www.value.net/index/" + arr[i].value};
divisions.push(obj);}