양식을 여러 번 제출하고 다중 선택 필드에서 선택한 항목을 반복하여 각각 한 번 제출하여 onClick
이벤트를 작성하고 싶습니다.어떻게하면 onClick 이벤트에 루프를 만들 수 있습니까?
루프를 어떻게 코딩합니까?
Ruby on Rails에서 작업 중이며 remote_function()
을 사용하여 ajax 호출 용 JavaScript를 생성하고 있습니다.
양식을 여러 번 제출하고 다중 선택 필드에서 선택한 항목을 반복하여 각각 한 번 제출하여 onClick
이벤트를 작성하고 싶습니다.어떻게하면 onClick 이벤트에 루프를 만들 수 있습니까?
루프를 어떻게 코딩합니까?
Ruby on Rails에서 작업 중이며 remote_function()
을 사용하여 ajax 호출 용 JavaScript를 생성하고 있습니다.
빠른 응답 (아직 코딩하지 않았으므로)은 XMLHTTPRequest와 단일 호출에 대한 특정 매개 변수를 사용하여 POST를 만드는 또 다른 함수를 만드는 것입니다. 그런 다음 선택한 항목을 반복하면서 onClick() 핸들러를 호출합니다.
나는 단지 HTML 페이지와 자바 스크립트를 사용하여 개념 증명을 한 다음 RoR에서 작동시키는 법을 알아 내려고합니다.
또한 왜 RoR 컨트롤러에서 루핑 조건을 처리하는 것과 달리 브라우저에서 여러 번 호출하려고합니까?
일부 자바 스크립트를 수동으로 작성해야합니다. Rails의 생성자는이 복잡한 작업을 수행하지 않습니다.
Prototype.js는 거의 모든 어려운 작업을 수행합니다. 내 머리 위로 떨어져, 코드는 다음과 같을 것이다 : (안된를)
<%= javascript_include_tag 'prototype' %>
<form id="my-form">
<input type="text" name="username" />
<select multiple="true" id="select-box">
<option value="1">First</option>
<option value="2">Second</option>
<option value="3">Third</option>
<option value="4">Fourth</option>
</select>
</form>
<script type="text/javascript" language="javascript">
submitFormMultipleTimes = function() {
$F('select-box').each(function(selectedItemValue){
new Ajax.Request('/somewhere?val='+selectedItemValue,
{method: 'POST', postBody: Form.serialize('my-form')});
});
}
</script>
<a href="#" onclick="submitFormMultipleTimes(); return false;">Clicky Clicky</a>
참고 :
을 선택한 항목의 값을 얻기 위해 프로토 타입의 $F()
방법을 사용.
Ajax.Request
을 사용하여 데이터를 POST
으로 서버에 보냅니다. 서버에
이 단지 형식에서 데이터를 얻을 요청의 몸에서 그것을 스틱 Form.serialize
을 사용하여 정상적인 형태를
를 제출 정확히 같은 보인다.
이것은 브라우저 DOM을 수정하지 않는 한 양식 일반적으로
를 제출 한 경우 전송받을 것입니다 동일한 데이터, 난 당신이 할 이유 생각할 수 없다. (그러나 당신이하고 싶은 것을 완전히 모르는 상태에서이 경우 = 틀릴 수 있습니다.)
하나의 POST에서 다중 객체 (양식의 중첩 된 복합 객체 포함)의 데이터를 다시 전송할 수 있어야합니다 .
레일즈 코드는 작성하는 자바 스크립트보다 훨씬 덜 복잡하고 쓰기 쉽고 디버깅하기 쉽습니다.
사용자가 선택한 항목에 따라 페이지의 다른 부분을 업데이트해야하는 경우 render : update 블록에서 RJS를 통해 DOM을 여러 번 업데이트 할 수 있으므로 문제가되지 않아야합니다.
여러 개의 POSTS를 사용해야하는 다중 경로 대신 단 한 번의 서버 왕복으로도 많은 이점이 있습니다.