我遇到了JSON_encode和jQuery的问题,我发现它使用以下代码发布完整数组,但是我无法让它回显我需要的一个数组。
$.get("/indexget.php", { page: "goals" },function(data) {
$('#bodyContentStuff').text(data);
完整的jQuery代码
$("#navLinkGoals").click(function () {
$("#bodyTitleBar").text("Goals");
$.get("/indexget.php", { page: "goals" },function(data) {
$('#bodyContentStuff').text(data);
}
);
完整的PHP代码
if($_REQUEST['page'] = 'goals'){
$result = mysql_query("SELECT * FROM content WHERE page='indexGoals'")
or die(mysql_error());
$row = mysql_fetch_array( $result );
$message = $row['message'];
}
echo json_encode(array("content"=>"$message"));
我有点编程的菜鸟,但如果你想看看它在做什么,网站是http://www.gronge.com,只需点击目标链接。
编辑:哦,我也试过了
$('#bodyContentStuff').text(data['content']);
但它不起作用。
答案 0 :(得分:1)
你试过像这样把“,'json'”:
$.get("/indexget.php", { page: "goals" },function(data) {
$('#bodyContentStuff').text(data.content);
}, 'json')
没有那个jquery可以很明智地猜出格式是什么......
如前所述,它应该是data.content
并且如前所述使用console.log(数据)来查看实际的数据(可能是一个字符串,而它应该是一个json对象?)
答案 1 :(得分:1)
如果这是逐字粘贴,则在$ .get
的调用中缺少右括号$("#navLinkGoals").click(function () {
$("#bodyTitleBar").text("Goals");
$.get(
"/indexget.php",
{
page: "goals"
},
function(data) {
$('#bodyContentStuff').text(data);
}
); // <== Right here
);
(代码重新格式化以突出差异)
刚刚注意到PHP的一个潜在问题:
if($_REQUEST['page'] = 'goals'){ //<== are you assigning or comparing?
$result = mysql_query("SELECT * FROM content WHERE page='indexGoals'")
or die(mysql_error());
$row = mysql_fetch_array( $result );
$message = $row['message'];
}
echo json_encode(array("content"=>"$message"));
答案 2 :(得分:0)
而不是使用$ .post
$("#navLinkGoals").click(function () {
$("#bodyTitleBar").text("Goals");
$.post("/indexget.php", { page: "goals" },function(data) {
$('#bodyContentStuff').text(data);
}
);
答案 3 :(得分:0)
您是否记录了data
变量?什么记录?另外:mysql_*
已被弃用,转向清晰并开始使用PDO。但我认为您打算将$row[0]['message']
分配给$message
变量。如果内存对我有用,mysql_*
总是返回一个assoc数组数组或一个数组数组。
虽然我们讨论的主题是:JavaScript没有关联数组,只有对象,因此不是访问像data['content']
这样的数据,而是使用data.content
。括号表示法是为了方便起见,因此您可以使用变量的值作为属性名称(不带eval),当然是 EVIL 。
答案 4 :(得分:-2)
还在你的php上:
$row = mysql_fetch_assoc($result);
而不是mysql_fetch_array,如果你想使用$row['message']
表示法。