簡體   English   中英

ruby on rails - 如何使用ajax讀取json文件?

[英]ruby on rails - how to read json file using ajax?

我正在使用這些代碼,

#In timetable/new.html.erb

<%= select_tag :department, options_for_select(
 @departments.collect{ |d| [d.department_name, d.id]}, nil),{ id: "department_select" } %>



#In timetable controller

def update_lectures
  if params[:department].to_i == 0
    @lectures = Department.find_by(department_name: params[:department]).l    ectures
  else
    @lectures = Department.find(params[:department]).lectures
  end
respond_to do |format|
  format.json { render :json => @lectures.to_json }
end




#In javascript

$("#department_select").change( function() {
  $.ajax({
    url: window.location.origin + '/timetable/update_lectures',
    dataType: "json",
    data: $("#department_select").serialize(),
    success: function(data){
      var str = '';
      for(var i = 0; i < data.length; i++) {
      str += '<li>' + data[name] + '</li>';
      }
      $('#lecture-container-body').html(str);
    }
  });
});

我想在#In javascript 中知道如何讀取“數據”?

當我使用 data[name] => "undefined"

當我在控制台中使用 data[lecture_name] => "Uncaught ReferenceError: talk_name is not defined"

@lectures 將有這些列:id、lecture_name、lecture_division、passfail 等。

(沒有“姓名”欄)

請幫忙

首先,您不是在 for 循環中提取索引。 所以,數組沒有你需要的道具。

在javascript中,您可以按預期使用括號表示法動態訪問道具,但屬性本身必須是字符串或對“類似字符串”值的引用...

 str += '<li>' + data[i]['name'] + '</li>'; //note the quotes in name!

是一樣的做

str += '<li>' + data[i].name + '</li>';

所以,當你在做

str += '<li>' + data[last_name] + '</li>';

解釋器查找名為last_name的變量,該變量會引發您提到的錯誤。

在您的成功回調中嘗試:

success: function(data){
  var str = '';
  for(var i = 0; i < data.length; i++) {
  str += '<li>' + JSON.parse(data).lecture_name + '</li>';
  }
  $('#lecture-container-body').html(str);
}

您需要的巫毒是 JSON.parse()。 它是 JSON.stringify() 的補充。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM