처음 페이지를 열면,
비디오링크를 가진 테이블에서 데이타를 읽어와서, 라디오버튼을 가진 링크주소들이 주르륵 리스트되어있구요.
그중에 하나를 선택하면 DB레코드가 갱신이 되도록 하고싶습니다.
구글링을 해보니 submit을 해야지만 가능하다고 해서 버튼추가를 했는데도, 아무런 반응이 없네요.
제가 해놓은것은 다음과 같습니다. (일부만 발췌)
[뷰에서]
<table>
....
<% @videos.each do |video| %>
<tr>
<td>
<div id="radio_buttons">
<%=radio_button_tag 'sel', video.id, checked?(video.selection)
%>
<%=h video.title %>
</div>
</td>
</tr>
....
</table>
<%= link_to_remote 'Select!', :url => {:action=>"index"}, :submit
=>'radio_buttons' %>
그리고 컨트롤러에서는,
def index
...
if request.post?
flash[:notice] = 'Something happened!'
format.html { redirect_to :action => 'index'}
end
...
end
무엇이라도 되었다면 저 메시지가 나와야 할텐데, 에러도 없고 무반응이네요.
요약하면,
(1)라디오버튼 누를때마다 DB 테이블 레코드갱신을 할 수 있는 방법이 있는지 알고 싶습니다.
(2)만일 (1)의 방법이 안되고, 버튼을 눌러야지만 된다고 한다면, 저 위의 코드가 왜 동작을 안하는지요..
두가지에 대해서 조언 부탁드리겠습니다.
감사합니다.
만약 jquery 를 쓰신다면 change 이벤트를 사용하시면 될듯합니다. http://api.jquery.com/change/
2) 가능하니까. 그리고 일단 저 코드만으로는 정확히 알수가 없습니다.
다만 저 코드만 볼때 link_to_remote 가 원하시는 form 액션과 별개로 구성되어 있을 것 같습니다.
link_to_remote 부분은 rails가 생성하는 javascript가 들어갑니다.
FireBug 같은걸로 디버깅 해보시면 왜 동작하지 않는지 알수 있을 겁니다.
2010/10/8 도리도리 <any...@gmail.com>:
> 아직 초보라 잘 모르겠지만 제 생각을 말해볼께요..
>
> 라디오 버튼 대신 콜렉션 요소에 각각의 div에 뿌려주고
> 각각의 라디오버튼에 해당하는 div에대해 id와 버튼으로 행동하기 위한 class를 주고
> 해당 div를 클릭하면 함수가 실행되도록 토글시켜서 ajax요청을 보내면 안되나요?
>
> $(document).ready(function() {
> $('#vid_<%= video.id %> .btn').toggle(function() {
> //ajax load요청
> }, function() {
> //ajax load요청해지
> }
> }
> 제가 말한 내용이 답이 아닐지라도 ajax로 처리하는게 답일 것 같네요..
2) rails 3부터는 link_to_remote 를 쓴다고 javascript 가 그대로 삽입되지 않고, 예약된 클래스를
이용해서 단순 class만 추가해서 출력합니다.
2010/10/8 Sangmin Ryu <neo...@gmail.com>:
바로바로 답변을 주고 계신 여러분들께 감사드립니다...
On Oct 8, 9:13 am, Sangmin Ryu <neoc...@gmail.com> wrote:
> 1) radio button 의 이벤트를 javascript 로 잡아서 처리하세요.http://www.hscripts.com/tutorials/javascript/dom/radio-events.php
>
> 만약 jquery 를 쓰신다면 change 이벤트를 사용하시면 될듯합니다.http://api.jquery.com/change/