在我寻求让 PHP 可以使用这个 JSON 的过程中,我遇到了一个又一个的障碍,所以我想知道是否有人可以帮助我。
我将 JSON 存储在变量 DivisionsJSON 中:
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');
}
});
(我从另一个问题上复制了这个,但是我的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,在 divions.php 上绝对没有显示与实际 PHP/JSON 相关的内容。任何和所有的帮助将不胜感激!
使用更新的代码响应:
当我在 utf8 行中添加以下没有 utf8 行的 php 时,我得到 NULL 和 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);}