我有这段代码:
<script>
$(document).ready(function()
{
refresh();
});
function refresh()
{
$.get('getMessageDetails.php', function (json) {
alert(json); //as a test for now
});
}
</script>
然后我有了我的getMessageDetails.php:
<?php
header('Content-Type: application/json; charset=utf-8');
include('header_application.php');
$lastNewMessageCnt = $obj_clean->getUnopenedMessagesCount($_SESSION['user_id']) + 1;
$last_unopened_message_row = $obj_clean->getLastUnopenedMessage($_SESSION['user_id'],$lastNewMessageCnt);
echo json_encode($last_unopened_message_row);
&GT;
和我的HTML:
echo "<tr>";
echo '<td><a id = "message_id" class="red_link" href="'.ADDRESS.'view_message.php?id='.$r['id'].'"><span id = "subject">'.$r['subject'].'</span></a></td>';
echo '<td id = "unique_code1">'.$uniqueCode1.'<span id = "unique_code2" class="pink_text">'.$uniqueCode2.'</span><span id = "unique_code3">'.$uniqueCode3.'</span></td>';
echo "</tr>";
为什么我发出警报(json)我得到的值我应该得到哪个是最后一条消息:
[{"subject":"Freechat ha ha","id":"15","created_at":"2011-08-29 11:16:45","unique_code":"LUCINEM000RC","opened_once":"0"}]
但是,只要我编码:
alert($("#subject").html(json.subject));
alert($("#message_id").html(json.id));
alert($("#unique_code1").html(json.unique_code));
我收到第一封邮件的详细信息???这不是我想要的 我哪里出错了? 谢谢
答案 0 :(得分:1)
试试这个:
alert(json[0].subject);
因为json字符串包含在[]
中,所以它形成了一个数组,你想从中获取第一个元素
答案 1 :(得分:0)
{}
[]
所以要访问需要的数据,你需要这样做..
alert(json[0].subject);
alert('<br>'+json[0].id);
alert('<br>'+json[0].created_at);
alert('<br>'+json[0].unique_code);
alert('<br>'+json[0].opened_once);
实际上你的jquery函数存在问题
或者如果您使用的是jQuery.get,那么请将"json"
写为第三个参数
function refresh()
{
$.get('getMessageDetails.php', function (json) {
},"json"); // <---here
}
注意:为什么不安装firebug,它会告诉您的错误运行时