2012-01-25 7 views
0

누군가 나를 도와 줄 수 있습니까? 비슷한 질문에 대한 답을했지만 문제를 해결할 수 없으므로 여기까지 자세히 설명하려고 노력했습니다. 죄송합니다 반복이지만, 정말 도움이 필요합니다.다른 양식 제출이 실패 함

mouseover 이벤트를 통해 동일한 ASP 페이지에 세 개의 양식을 제출하려고합니다. ASP 페이지는 제출 된 양식과 양식에 포함 된 데이터에 따라 이미지를 저장하는 코드를 실행합니다. 나는 이것을하기 위해 몇 가지 방법을 시도했다. 아래에 표시된대로 차례대로 제출하면 일부 또는 모든 이미지가 생성되지만 무작위이며 이후 제출이 이전 호출을 덮어 쓰는 것 같습니다.

function save_all_des(){ 
    document.getElementById("form_zoom1").submit(); 
    document.getElementById("form_zoom2").submit(); 
    document.getElementById("form_zoom3").submit(); 
} 

나는 또한이 같은 jQuery를 사용하여 시도 :

$("#create_image").mouseover(function() { 
    $("#form_zoom1").submit(function() { 
    $("#form_zoom2").submit(function() { 
    $("#form_zoom3").submit(); 
    }); 
    }); 
}); 

이 난 그냥 하나의 양식을 시도하더라도 전혀 작동하지 않습니다. (mouseover 이벤트 자체가 정상적으로 작동합니다.)

세 가지 양식은 동일한 입력 이름 (하나만 표시 했음)이지만 값은 다릅니다. 개별적으로 그들은 ok를 제출합니다.

<form id="form_zoom1" name="form_zoom1" action="abc.asp" target="MyFrame"> 
    <input type="hidden" name="tab" value="1"> 
</form> 
<form id="form_zoom2" name="form_zoom2" action="abc.asp" target="MyFrame2"> 
    <input type="hidden" name="tab" value="2"> 
</form> 
<form id="form_zoom3" name="form_zoom3" action="abc.asp" target="MyFrame3"> 
    <input type="hidden" name="tab" value="3"> 
</form> 

<iframe id="MyFrame" name="MyFrame" style="display:none;"></iframe> 
<iframe id="MyFrame2" name="MyFrame2" style="display:none;"></iframe> 
<iframe id="MyFrame3" name="MyFrame3" style="display:none;"></iframe> 

두 번째, 세 번째가 제출되기 전에 하나의 양식 제출물 뒤에있는 코드가 제대로 작성되었는지 어떻게 확인합니까?

도움을 주시면 감사하겠습니다. 감사합니다.

답변

2

실제로 양식을 제출하는 대신 AJAX를 사용하여 서버에 POST 요청을 보내는 것이 좋습니다. 세 가지 요청을 동시에 보내고 올바르게 작동시킬 수는 있지만 제출 한 후에 서버의 응답으로 무엇을하고 있는지에 따라 달라집니다.

AJAX 호출을 수행하는 데 사용하는 방법에 대한 자세한 내용은 jQuery Documentation을 참조하십시오. 그 세 가지 AJAX POST 요청, 각 양식에 대한 하나에서 거의 같은 시간을 보내는

function submitForm(form) { 
    $.ajax({ 
     url: 'abc.asp', 
     method: 'post', 
     data: { 
      tab : $('input[name="tab"]',form).val() 
     }, 
     success: function(data) { 
      /* handle the response from the server here 
      if you don't need to do anything to the structure of the page, you can probably just leave this blank 
      may want to put in some console.log or alert statements for debugging purposes 
      */ 
     } 
    }); 
} 

$('#create_image').mouseover(function() { 
    submitForm($('#form_zoom1')); 
    submitForm($('#form_zoom2')); 
    submitForm($('#form_zoom3')); 
}); 

참고 :

샘플 코드는 다음과 같이 보일 수 있습니다. 이 순서대로 완료 할 것이라는 보장은 없습니다 (제공 한 정보를 고려할 때 중요하지는 않겠지 만).

+0

답장을 보내 주셔서 감사합니다. Anthony. 불행히도 jquery와 AJAX가 나에게 newr이기 때문에 나는 javascript에 처음이다. 서버는 이미지를 생성하고 상세한 ASP 코드를 사용하여 서버에 저장합니다. 사용자는 우려되는대로 변경 사항을 보지 않습니다. 이미지는 라이트 박스를 통해 볼 수 있습니다. 당신이 제안한 것을 보여줄 수 있습니까? 나는 AJAX가 현재 나를 넘어선 것을 두려워한다. –

+0

@ user1101686 제공하신 정보를 바탕으로 원하는대로 할 수있는 jQuery 코드를 포함하도록 답변을 편집했습니다. 3 가지 요청을 (대략) 동시에 전송합니다. 첫 번째 요청이 완료 될 때까지 기다리지 않고 다음 요청을 전송하기 전에 기다리는 것이 아니라 문제가 될 것으로 생각합니다. –

+0

감사합니다. 이걸 시험해보고 작동시킬 수 있는지 알려주지. –

관련 문제