2011-10-11 53 views
0

在Rails应用程序,我想我如何解析返回的数据获取使用的Ajax/jQuery的,我得到正确的数据,但问题几条记录,并呈现为HTML?通过AJAX呈现从轨控制器返回的数据

我的js函数

$.ajax({ 
     url: "https://stackoverflow.com/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\"}} 

]]" 

回答

1

首先,你的json格式应该只有一个括号,你必须改变你的服务器代码。然后你可以使用此功能从json获得你的值

$.each(data,function(key,value){ 
    alert(key+" - "+value.question.title + " - "+value.question.created_at+" ...") 
}) 
$.each(data,function(key,value){ 
    alert(key+" - "+value.question.title + " - "+value.question.created_at+" ...") 
}) 
+0

实际上甚至对Sedat感到困惑,让我检查并发布格式。 – abhijit

+0

我在等你的格式。也许你可以在你的成功方法中使用这个:alert(JSON.stringify(data))来学习你从服务器返回的格式 –

+0

我已经发布了格式,我需要json2插件为stringify吧? – abhijit

相关问题