2009-08-24 9 views
2

한 페이지에 답변의 다른 tipe과 함께 질문 목록이 있습니다. (texboxes, checkboxes 등) 페이지가 동적으로 생성됩니다. 데이터베이스에 답변을 저장해야합니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 여러 형태 또는 다른 것? 모든 대답 이후에 아약스 요청을 보낼 수 있다면 좋겠지 만 달성 방법을 모르겠습니다 (해당 사용자가 답변을 입력하고 다음 질문으로 이동하는 방법)한 페이지에서 여러 양식을 처리하는 방법은 무엇입니까?

나는 ASP를 사용하고 있습니다. net mvc with C#

답변

1

HTTP 요청마다 하나의 양식 만 보낼 수 있으므로 작업을보다 간단하게하기 위해 단일 양식을 사용하고 각 대답 필드에 서버에서 사용할 수있는 고유 한 이름을 지정해야합니다 그것을 데이터베이스에 맵핑하십시오.

신청자가 질문을 마치면 AJAX 요청을 보내지 않는 것이 좋습니다. 많은 사람들이 모든 질문에 답하고 두 번째 대답을하고 싶어합니다.

따라서 "마법사"접근법 (또는 페이지 당 하나의 질문을 사용하고 현재 답변을 제출 한 후 다음 질문을 받음)을 사용하지 않는 것이 좋습니다.

+0

그는 모든 양식의 모든 정보를 직렬화하고 하나의 아약스 요청을 보낼 수 있습니다 ... 최선의 아이디어는 아니지만! – redsquare

1

모든 질문 후에 AJAX 요청을 사용하여 답변을 저장하지 않으려는 Aaron의 답변에 동의합니다. 그러나 양식 필드의 사용자 편집 데이터를 기반으로 AJAX 요청을 실행해야하는 상황이 발생하면 'onChange'및 'onBlur'와 같은 Javascript 이벤트를 수신하고 AJAX 요청을 시작하여이를 수행 할 수 있습니다 그 이벤트 리스너로부터.

+0

전체 양식에서 어떻게 흐리게 처리 할 수 ​​있습니까? – Ante

+0

추신 : 내 문제를 해결할 수 있습니다 – Ante

+0

전체 양식에 대해 onBlur를 수행 할 수는 없으며 요소 레벨 이벤트입니다. 당신이 할 수있는 몇 가지가 있습니다. onBlur 이벤트 핸들러에서 모든 양식 필드를 반복하여 값이 있는지 확인하고 AJAX 호출 만 수행하면 호출 할 수 있습니다. 더 나은 옵션은 각 요소의 상태를 나타내는 배열을 설정하는 것과 같은 것을 할 수 있습니다 (수정 여부). 그런 다음 각 요소의 이벤트 핸들러에서 수정 된 것으로 표시합니다. 그런 다음 배열을 검사 할 수 있습니다. 모든 요소가 수정 된 경우 양식을 제출할 준비가되었으며 AJAX 요청을 할 수 있습니다. – Hamman359

관련 문제