2011-03-08 2 views
0

레일즈의 선택된 라디오 버튼을 기반으로 드롭 다운 목록 값을 채우는 데 사용할 수있는 아약스 및 레일스 스크립트를 알고있는 사람 누구나 3 가지 유형이 있습니다 플랫폼 선택 (윈도우, 유닉스) 라디오 버튼을 누른 다음 유닉스 라디오 버튼을 클릭하면 드롭 다운 목록 상자는 유닉스 타입의 무언가 (패치)만을 필터링합니다.레일에 선택한 라디오 버튼을 기반으로 드롭 다운 목록 값을 채우기위한 아약스 및 레일 스크립트 3

아이디어는 드롭 다운에 이미 데이터베이스의 내용이 있습니다 (< % = f.select : other_platform, Patch.all.map {| p | [ "# {p.patch_type} # {p.number} # {p.summary} ", p.id}}, {: include_blank => true} %>) 할 필요가있는 라디오 버튼에 창 유형 예제 기반을 가진 값만"필터 "하는 것입니다. Windows 유형을 클릭 한 경우 드롭 다운 메뉴에 Windows 유형의 패치 만 표시되고 unix 유형 또는 regx (쿼리 확인)와 같은 unix 단어가있는 목록이 숨겨지고 unix를 선택하거나 클릭 한 경우

감사

에 답하시기 바랍니다 만 유닉스 유형은 드롭 다운 메뉴에 나타납니다 아이몬


나는 여기에 코드가 : 이 라디오 버튼은 다음과 같습니다


나는이 선택 박스 아약스 코드와는 어떻게해야합니까? 라디오 버튼과이 선택 상자에 대한 아약스 및 일부 추가 코드의 올바른 코드는 무엇입니까?

사실} %>

답변과 예제 정말 감사합니다 ..

덕분에, 아이몬

답변

0

이 매우 간단합니다. 사용자가 라디오 버튼을 클릭하면 ajax 요청이 호출됩니다. Ajax URL의 서버에서 드롭 다운 목록을 가져 오기위한 매개 변수를 전달할 수 있습니다. 그런 다음 서버에서 필요한 드롭 다운에 응답하고 Ajax 호출에서 응답을 수신하고 dom 요소를 채 웁니다. 쿼리를 수행하고 질문하십시오.

편집 :

다음은 코드의 골격입니다.

 
Suppose you have three radio buttons: 

> input type="radio" name="rdio" value="a" checked="checked" /> 
> input type="radio" name="rdio" value="b" /> 
> input type="radio" name="rdio" value="c" /> 

> div id="drop_down" /> 
Bind click event like this: 

$("input[@name='rdio']").click(function(){ 
    var url = '/get_drop_down_options?radio_val=' + $(this).val() 
    $("#drop_down").removeOption(/./) 
    $.get(url, function(data) { 
    $('#drop_down').addOption(data, false); 
    }); 
}); 

In your controller, 

def get_drop_down_options 
    val = params[:radio_val] 
    options = YourModel.collect{|x| "'#{x.id}' : '#{x.label}'"}  
    render :text => "{#{options.join(",")}}" 
end 


Now you dont need partial. 
+0

인사 인 Ashish, 감사 대답하지만 당신은 나에게 샘플, 아약스 코드 및 라디오 버튼을 클릭하면 레일 – imon

+0

에 선택 박스에서 목록을 채 웁니다 선택한 라디오 버튼에 대한 필터 코드를 제공 할 수 있습니다 선택 상자에있는 목록은 다음과 같은 라디오 버튼 값을 기준으로 'windows'또는 'unix'와 같은 유형 만 필터링합니다. <% = f.radio_button : patch_type, 'unix'%><% # = f. label : patch_type_unix, "Unix"%>
<% = f.radio_button : patch_type, 'windows'%><% # = f.label : patch_type_windows, "Windows"%> – imon

+0

나는 onclick 이벤트를 사용해야합니다. 라디오 버튼? – imon

관련 문제