Ajax

김수민·2023년 8월 17일

Ruby on Rails 1.2.6

목록 보기
7/8

ruby라기보다 JS, jquery이다.

작성

View

<div id="id명B">
	<button onclick="변수명A(매개변수)"></button>
</div>

<script>
function 변수명A(매개변수){
  $.ajax({
    method: "POST",
    url: "/컨트롤러/액션명C",
    data: { params로 넘길 값 }
  })
  .done(function( ajax로 받은 데이터 ) {
    $("#id명 B").html(ajax로 받은 데이터); // Jquery
    // document.querySelector("#id명B").innerHtml = ajax로 받은 데이터
  });
}
</script>

Controller

def 액션명C
	---실행할 구문---
    render :layout => false
end

작성예시

views/friend/add.rhtml

<div id="add_btn_<%= friend.id %>">
	<button onclick="ajaxTest(<%= friend.id %>, 'add_btn_<%= friend.id%>')">
	</button>
</div>

<script>
function ajaxTest( id, replace_id ){
  $.ajax({
    method: "POST",
    url: "/friend/add_friend_ajax",
    data: { id : id } //params[:id] = id가 된다.
  })
  .done(function( msg ) {
    console.log( "Data Saved: " + msg );
    $("#" + replace_id).html(msg);
  });
}
</script>

controllers/friend_controller.rb

  def add_friend_ajax
    add_friend( true )

    @added_user = User.find params[:id]
    render :layout => false
  end

views/friend/add_friend_ajax.rhtml

<%= @added_user.name %>추가됨.

add_friend_ajax는 url에 입력된 주소와 위치/파일명이 동일해야한다.


값 가져오기

input

$("css선택자").val()
profile
sumin0gig

0개의 댓글