테스트 사이트 - 개발 중인 베타 버전입니다

form 2개를 submit 버튼 하나로 하려면? 채택완료

GNUAPP 1년 전 조회 2,051

아래는 submit 버튼 하나로 form 2개를 처리하는 방법인데요.

작동은 잘 되지만, 버튼을 누를때마다 새창이 떠서 작동이 됩니다.

target 때문인 것 같은데, target이 없으면 또 작동이 안되네요.

해결방법이 없을까요? 도움 부탁드려요~

 

<form name="form" method="post" action="$PHP_SELF" target="1">
</form>
<form name="form2" method="post" action="abc.php" target="2">
</form>
<input type="button" onClick="javascript:All_submit()" value="저장">

 

<script>
function All_submit()
{
   document.form.sumit();
   document.form2.sumit();
}
</script>

댓글을 작성하려면 로그인이 필요합니다.

답변 6개

채택된 답변
+20 포인트
1년 전

target이 없으면 현재페이지가 이동되어버리는데 두번째폼이 submit될 수가 없죠

첫번째는 ajax로 처리한 후

두번째폼이 submit되게 해야겠네요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

G
GNUAPP
1년 전
균이님 답변 감사합니다.
아래처럼 하는 것이 맞는가요? 작동을 안해서 문의 드려요.
도움 부탁드립니다.ㅜㅜ

<form id="step_1" method="post" action="all_update.php">
</form>
<form id="step_2" method="post" action="2.php">
</form>

<a onclick="javascript:All_submit()" class="btn_submit">저장</a>

<?
$all_action_url = https_url(G5_BBS_DIR)."/all_update.php";
?>
<script>
function All_submit() {
form = $('#step_1');
$.ajax({
type: "POST",
url: form.attr('<?php echo $all_action_url; ?>'),
data: form.serialize(),
});
document.getElementById('step_2').submit();
}
</script>
균이
1년 전
$.ajax({
type: "POST",
url: form.attr('<?php echo $all_action_url; ?>'),
data: form.serialize(),
success: function(data){ document.form2.sumit(); }
});
G
GNUAPP
1년 전
균이님 잘 작동합니다. 답변주셔서 감사 드립니다.

댓글을 작성하려면 로그인이 필요합니다.

포이치
1년 전

ajax 로 처리하는게 베스트긴 한데

submit 후 보여줄 페이지가 없는거라면 

숨겨진 iframe 을 두개생성하시고

form 에서 target 을 iframe 으로 지정해서 submit 해보세요.

 

<iframe name='iframe1' style='display:none;'></iframe>
<iframe name='iframe2' style='display:none;'></iframe>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

1년 전

GPT 대답내용입니다. 

 

<form name="form" method="post" action="$PHP_SELF" target="1">
  <!-- Your form fields go here -->
</form>

<form name="form2" method="post" action="abc.php" target="2">
  <!-- Your form2 fields go here -->
</form>

<input type="button" onClick="submitForm('form')" value="저장1">
<input type="button" onClick="submitForm('form2')" value="저장2">

<script>
function submitForm(formName) {
  if (formName === 'form') {
    window.location.href = '<?php echo $PHP_SELF;?>'; // Redirect to abc.php for form2
  }
  
  if (formName === 'form2') {
    window.location.href = 'abc.php'; // Redirect to abc.php for form2
  }
}
</script>
 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

1년 전

좋은 방법은 아닌 것 같습니다.
해보지는 않았지만, target을 2번째 폼에만 주면 실행될 것 같기도 한데,

그것보다는 ajax를 이용하신다든가 하는 다른 방법을 추천 드리고 싶네요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

<form name="form1" method="post" action="$PHP_SELF">
    <!-- 1 필드들 -->
</form>
<form name="form2" method="post" action="abc.php">
    <!-- 2 필드들 -->
</form>
<input type="button" onClick="javascript:All_submit()" value="저장">

<script>
function All_submit() {
   document.form1.submit();
   document.form2.submit();
}
</script>
이렇게 해보세요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

그누위즈

좋은 방법은 아닙니다...

서브밋을하는 첫 페이지에서

2번째 update를 처리하는 페이지 로직까지 한번에 처리하시는게 어떨까요..

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인