#jquery #ajax #ruby-on-rails-3 #json
#jquery #ajax #ruby-on-rails-3 #json
Вопрос:
В приложении 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"}}
]]"
Ответ №1:
Сначала в вашем формате json должна быть только одна скобка, вам нужно изменить код вашего сервера таким образом. И тогда вы можете использовать эту функцию для получения ваших значений из json
$.each(data,function(key,value){
alert(key " - " value.question.title " - " value.question.created_at " ...")
})
Комментарии:
1. на самом деле даже я в замешательстве по поводу этого Sedat, позвольте мне проверить и опубликовать формат.
2. Я жду вашего формата. возможно, вы можете использовать это в своем методе успеха: alert(JSON.stringify(data)), чтобы узнать ваш формат, возвращенный с сервера
3. я опубликовал формат, мне понадобится плагин json2 для stringify, верно?
4. я проверил возвращенный формат в jsonlint и обнаружил его недопустимый json
5. я преобразовал возвращенные данные в json с помощью to_json, теперь я получаю следующий формат