2012-10-04 4 views
1

가까이에 있지만 Rail 2.x이거나 3에서 작동하지 않거나 충분히 시간이 많이 걸리는 것들을 찾고 있습니다. 그들을 재 작업하는 방법을 알아 내려고 노력했습니다.RnR 3 : 양식에서 Ajax를 사용하여 데이터 조회

내가 원한다. 우리는 두 종류의 사람, 회원 및 게스트 있습니다. 회원은 회원 번호를 가지고 할인을받습니다. 나는 그들이 회원 번호를 입력 할 때, 그리고 데이터베이스에서 찾을 때 회원 번호가 존재하면 빨간색 x가 표시되지 않는 경우 녹색 확인을 표시합니다. 이것은 전체 양식을 게시 할 필요없이 경험을 개선하기위한 것이며 회원 번호가 뚱뚱했기 때문에 다시 나타납니다.

button_to 또는 link_to를 사용하여 다음과 같이 사용할 수 있다고 생각했습니다. remote => true, 컨트롤러에서 함수를 호출하고 그 결과에 따라 이미지가 포함 된 div를 숨김 해제합니다. 그래서 문제의 함수가 호출되지만 성공 또는 실패를 나타내는 방법을 알아낼 수 없습니다. 또는 그 페이지가 아닌 show.html.erb 페이지로 이동합니다. 아니면 내가 제일 좋아하는 아무것도 ...

어떤 도움을 주시면 감사하겠습니다. 감사!

답변

1

PeopleController

def valid_member?(member_number) 
    member_number = params[:number] 
    member = People.find(number: member_number) 
    if People.exists?(member) 
    render :status => 200, :nothing => true 
    else 
    render :status => 404, :nothing => true 
    end 
end 

routes.rb

match "/valid_member" => "people#valid_member" 

application.js 또는 people.js

function checkValidMember() { 
    $("input#member-number").data("oldVal", $("input#member-number")); 
    $("input#member-number").bind("propertychange keyup input paste", function(event){ 
    if ($(this).data('oldVal') != $(this).val()) { 
     $(this).data('oldVal', $(this).val()); 
     if (isValidMember($(this).val())) { 
     alert("success"); 
     // your jquery magic for success case goes here 
     } 
     else { 
     alert("fail"); 
     // your jquery magic for failure case goes here 
     } 
    } 
    }); 
} 

function isValidMember(member_number) { 
    $.ajax({ 
    url: "valid_member?number="+member_number, 
    success: function(data) { 
     return true; 
    }, 
    statusCode: { 
     404: function() { 
     return false; 
     } 
    } 
    }); 
} 

첫 번째 수정.

분명히 위에서 쓴 javascript처럼 정확한 ID, member-number를 가진 입력 필드가 있어야합니다.

+0

상태 코드가 아닌 Json을 반환하는 것과 같이 몇 가지 수정이 이루어져서 작동하지 않습니다. 그러나 이것은 일했습니다! 감사! –

관련 문제