【发布时间】:2013-02-11 01:53:11
【问题描述】:
我在寻求让 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,但在 Divisions.php 上绝对没有显示与实际 PHP/JSON 相关的任何内容。任何和所有的帮助将不胜感激!
更新代码的响应:
我在没有 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);}
【问题讨论】:
-
研究php://input,可以得到这样的json post数据:
json_decode(file_get_contents('php://input')); -
我不会写php,但我很确定
$json = file_get_contents($url);是错的。 -
您正在发送或获取数据?
-
在使用 php://input 进行编辑时做出响应,但对我仍然不起作用。