2014-01-18 65 views
0

我试图发布一个JSON数据到AJAX,并得到一个“upvote_message”作为回报。但是,“upvote_message”返回为undefined。AJAX无法返回Json数据

代码:

<div class="media"> 
<div class="media-body"> 
<p align="right"> 
<span href="javascript:;" rel="1" class="upvote">Text to be replaced</span> 
</p> 
</div> 
</div> 

JS:

<script type="text/javascript"> 

$(function(){ 

$('.media .media-body .upvote').click(function(){ 

var this_a = $(this); 
var comment_id = $(this).closest('span').attr('rel'); 

$.ajax({ 
type:"POST", 
url: base_url + "/upvote", 
data:{comment_id : comment_id}, 
dataType: "json", 

success: function(data,status){ 
if(data.state == 'succ') 
{ 
this_a.html(upvote_msg); 
} 
else 
{ 
this_a.html(upvote_msg); 
} 
} 
}); 

}); 
}); 
</script> 

PHP

public function upvote(){ 

$comment_id = $this->input->post('comment_id'); 

if($comment_id==5){ 
echo json_encode(array('state' => 'succ','upvote_msg'=>'haha')); 
} 

else{ 
echo json_encode(array('state' => 'fail','upvote_msg'=>'bam')); 
} 
exit(); 

} 
} 

的PHP和AJAX的写入部分工作正常。数据也在数据库中注册。

问题是'upvote_msg'在返回到Javascript时显示为“未定义”。

如何解决这个问题?非常感谢,

回答

2

upvote_msgdata对象的属性,因此它应该是data.upvote_msg

1

要获得upvote_msg值,你必须使用

data.upvote_msg or data["upvote_msg"]