2010-01-09 4 views
0

이제 해당 선택 항목에 응답 할 수있는 드롭 다운 선택 양식을 만드는 방법에 대한 해결책을 찾고 있습니다.
예를 들어 직업을위한 드롭 다운 선택기를 만듭니다. ...

내가 정보 기술을 선택하면 사용자가 정보 기술을 선택할 때만 표시하도록 지정되는 다른 선택기가 표시됩니다 ... 팝업 선택기를 사용하면 웹 디자인과 관련된 모든 것을 선택할 수 있습니다.

레일을 사용하여 어떻게 처리 할 수 ​​있습니까?양식 선택 옵션 및 다른 양식 선택기에 해당하는 메시지

답변

1

여기에 일종의 DHTML 솔루션을 사용합니다. 당신은 실제로 Rails에 의존하지 않습니다.

"IT Stuff"및 "Flower Arranging"의 2 가지 직업 범주가 있다고 가정합니다. 각 카테고리에는 하위 카테고리가 있습니다.

보기 (xxx.erb.html)의 형태는 다음과 같이 표시됩니다

<form> 

    <select name="profession" onChange="makeVisible(this.options[selectedIndex].value);"> 
    <option value="itstuff">IT Stuff</option> 
    <option value="flowerarranging">Flower Arranging</option> 
    </select> 
    <div id="itstuff" style="display:none" > 
    <!-- Here is where you put the <select> for the sub-categories of IT Stuff --> 
    <select name="itsub"> 
     <option value="WindowsAdmin">Windows</option> 
     <option value="NeXTStepAdmin">NeXT</option> 
    </select> 
    </div> 

    <div id="flowerarranging" style="display:none"> 
    <!-- Here is where you put the <select> for the sub-categories of IT Stuff --> 

    <select name="flowersub"> 
     <option value="roses">Roses</option> 
     <option value="daisies">Daisies</option> 
    </select> 
    </div> 
    <input type="submit" value="Submit Profession INfo" /> 
</form> 

<script> 
    function makeAllInvisible() { 
    document.getElementById('itstuff').style.display='none'; 
    document.getElementById('flowerarranging').style.display='none'; 
    } 
    function makeVisible(id) { 
    makeAllInvisible(); 
    document.getElementById(id).style.display='block'; 
    } 
</script> 

당신이 당신의 양식 처리기가의 모든 입력을 처리 할 수 ​​있어야합니다 것을 일단 양식, 보이지 않는 섹션에있는 양식 포함. Rails에서 말하는 것은이 형식의 모든 제출물에 params [: profession], params [: itsub] 및 params [: flowersub]를 처리해야한다는 것을 의미합니다.

레일 양식 도우미를 사용하는 데주의하십시오. 레일즈 form_for 헬퍼 내에서 선택 태그에 대해 우수한 레일스 양식 태그를 찾지 못했습니다. 나는 보통 손으로 코드화한다.

+0

당신의 순간이 가장 좋은 방법 인 것 같습니다. 왜냐하면 나는 더 나은 해결책을 찾지 못했기 때문에 ~ 어쨌든 레일입니다 - 감사합니다 ^^. – 1myb