在rails应用程序中,我试图使用Ajax / jQuery获取少量记录,我正在获取正确的数据,但问题是如何解析返回的数据并将其呈现为HTML?
我的js功能
$.ajax({
url: "/questions/retrieve_function",
dataType:'json',
data: {
'obsolete': 1
},
success: function(data){
$.each(data, function(key, value) {
alert(key + ", " + $.param(value));
});
},
error: function(){
alert('error');
},
type: 'GET'
});
我的控制器方法:
def retrieve_function
obsolete = params[:obsolete]
@values = values.find(:all, :conditions => ["obsolete = ?", obsolete])
respond_to do |format|
format.html
format.json { render :json => @values }
end
end
目前正在使用$ .param检查是否获得正确的值,任何帮助将不胜感激,谢谢:)
更新
返回格式
"[[
{\"question\":{\"created_at\":\"2011-09-26T12:56:41Z\",\"choicea\":\"dg<br>\",\"qtype\":\"multiple\",\"title\":\"dfgdfg<br>\",\"choiceb\":\"dg<br>\",\"updated_at\":\"2011-10-10T14:41:52Z\",\"choicec\":\"dfg<br>\",\"choiced\":\"dg<br>\",\"id\":50,\"hint\":\"dg<br>\",\"obsolete\":1,\"correctans\":\"C\"}}
]]"
答案 0 :(得分:1)
首先,你的json格式应该只有一个括号,你必须改变你的服务器代码。然后你可以使用这个函数从json
获取你的值$.each(data,function(key,value){
alert(key+" - "+value.question.title + " - "+value.question.created_at+" ...")
})