2014-07-14 1 views
1
내가 jplayer을 사용하고 내가이 원하는 아약스 기능

레일 AJAX를 얻을

$.ajax({ 
    type: 'GET', 
    url:"../albums.json", 
    success: function(data){ 
        myPlaylist.add({title:$(this).attr("names")}) 
             }, 
    error: function(xhr,status,error){ 
         alert(error); 
        } 
    }); 

을 사용하고 재생 목록을 만들 레일 4 음악 플레이어 응용 프로그램과 함께 레일 가지고와의 초보자 있어요하고

HI 초보자있어 이후 나는 재생할 수있는 특정 앨범을 클릭하면 아약스 URL에 앨범/3.json 같은 싱글 앨범을 통과 ... 어떤 아이디어는 환영합니다

+2

당신은 HTML의 데이터 속성을 추가하고 album_id의 가치를 제공 할 수 있습니다. 그런 다음 ajax URL을 'url : "/ albums"+ $ (this) .data ('album_id ') + ".json"' – Santhosh

+0

으로 변경하십시오. 지금 케어를 위해 Santhosh에게 답장을 보내 주셔서 감사합니다. 클릭 기능? – navinspm

+0

먼저 HTML에 데이터 속성을 추가하십시오. 이제는 AJAX 호출을 수행하는 함수를 이미 트리거하고 있다고 가정합니다. 이 함수에서,'$ (this)'를 통해 요소에 접근하여 HTML 속성을 읽고이를 사용하여 URL을 구성하십시오. – Santhosh

답변

5

은, 내가 설명 할 당신


에 대한

아약스

Ajax비동기 자바 스크립트와 XML을 의미 -이 표준 HTTP 요청에 병렬로 요청을 보내도록 설계되었습니다. 이것은 기본적으로 페이지을 다시로드하지 않고 서버 의 데이터를 요청할 수 있음을 의미합니다.

대부분의 사람들은 아약스가이 검은 마술이라고 생각합니다. 그것은 당신을 대신하여 서버에 요청을 보내는 자바 스크립트입니다.

Ajax로 요청을 보내면 올바른 데이터를 올바른 URL로 보내고 그에 따라 응답을 처리 할 수 ​​있어야합니다.

나는 소프트웨어로 시작한 후 오랜 시간이 걸렸다는 것을 알았 기 때문에 도움이되기를 바랍니다.

-

경로

#config/routes.rb 
resources :albums #-> domain.com/albums/[:id] 

당신이 수행해야하는 첫 번째 단계는 제대로 경로를 정의하는 것입니다. 레일은 resourceful routing 구조를 사용하기 때문에 (경로는 사용자가 albums/x.json에 요청을 보낼 때 당신이, 당신이 정말로 show 행동에 요청을 보내는

를 사용 할 수 있습니다, 주변의 다양한 컨트롤러 중심의 자원을 구축하고 있습니다 준비

해야 할 필요가있을 albums 자원,의 - 사용자가 설정

컨트롤러

에게 경로를 사용하려면 컨트롤러를 통해 JSON 요청을 처리 할 수 ​​있어야합니다. 당신은 respond_to 블록이 작업을 수행 할 수 있습니다 :

#app/controllers/articles_controller.rb 
Class ArticlesController < ApplicationController 
    def show 
     @album = Album.find params[:id] 

     respond_to do |format| 
      format.html 
      format.json { render json: @album.to_json} 
     end 
    end 
end 

-

마지막으로

UJS,이에 대한 Rails' UJS를 사용하여 최고의 수 있습니다 - UJS는 ajax 요청을 보낼 수 있도록 설계되었습니다 (JS 코드를 작성하지 않아도됩니다.

#app/views/controller/index.html.erb 
<%= link_to "Play", @album, remote: true, format: :json %> 

그런 다음 UJS ajax event hooks의 일부 표준 JS를 사용하여 응답을 캡처 할 수 있습니다 :

#app/assets/javascripts/application.js 
$(document).on("ajax:complete", "#link", function(data){ 
    //stuff here 
}); 
+1

안녕하세요 부자 평소처럼 대답 해 주셔서 감사합니다. 아주 잘 설명합니다 .. 저는 AJAX를 배우고 있습니다 ... 가장 쉽고 멋지게 묘사하는 곳이 있습니까 ?? 너 어떤 블로그 있니? –

+0

블로그가 없습니다. Ajax에 관해 알아야 할 사항은 무엇입니까? 내가 원한다면 대답을 업데이트 할 수있다. –

+1

나는 Ajax에 대해 더 신선하다. 기초 지식을 배우고 싶다. RU에 대한 지식이 너무 많아서 최신 기능으로 Blog를 작성하는 것이 좋습니다. –

관련 문제