我正在通过Jquery在Zend Framework中创建一个非常简单的聊天框,我将内容加载到$('#outputArea')
,它本质上是一个带有$.load()
的div,但是我得到了一个json对象,我需要只提取一个消息值。我使用$.load()
得到的是:
[
{
"id": "1",
"messages": "message 1"
},
{
"id": "2",
"messages": "message 2"
},
{
"id": "59",
"messages": "d"
},
{
"id": "60",
"messages": "w"
},
{
"id": "61",
"messages": "fff"
},
{
"id": "62",
"messages": "d"
},
{
"id": "63",
"messages": "df"
},
{
"id": "64",
"messages": "dfs"
},
{
"id": "65",
"messages": "dw"
},
{
"id": "66",
"messages": "dw11"
},
{
"id": "67",
"messages": "dw112"
},
{
"id": "68",
"messages": "111"
},
{
"id": "69",
"messages": "111"
},
{
"id": "70",
"messages": "dd"
},
{
"id": "71",
"messages": "sddd"
},
{
"id": "72",
"messages": "\n\n"
},
{
"id": "73",
"messages": "ss"
}
]
我该怎么做?谢谢。 这是jquery代码:
$(document).ready(function(){
$('#outputArea').load('/index/index');
$('#chat').submit(function(){
var message = $('#message').val();
if(message === ''){
$('#error-message').css('display','inline');
return false;
}
$.post('/index/index',{'message':message},function(data){
$('#error-message').css('display','none');
var n = data.length;
$('#outputArea').append('<div>' + data[n-1].messages + '</div>' + '<br />');
console.log(data);
},'json');
return false;
});
});
和php索引控制器部分负责解析JSON:
if($this->_request->isXmlHttpRequest()){
$this->_helper->viewRenderer->setNoRender();
$this->_helper->getHelper('layout')->disableLayout();
$model = new Application_Model_DbTable_Chat();
$data = $this->_request->getParam('message');
//$data = json_decode($data);
$model->createPost($data);
$json = $model->fetchAll();
header('Content-type:application/json');
//print_r($json);
foreach ($json as $key => $value) {
}
echo $this->_helper->json->sendJson($json);
}
答案 0 :(得分:1)
这是您可以迭代JSON数组并获取相应键及其值的方法。
for(var i in data)
{
var message = data[i].message;
}
我认为你可以继续前进。