>웹 프론트엔드 >JS 튜토리얼 >버튼 하나로 두 개의 양식을 동시에 제출하려면 어떻게 해야 합니까?

버튼 하나로 두 개의 양식을 동시에 제출하려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-26 01:07:11277검색

How Can I Submit Two Forms Simultaneously with a Single Button?

단일 버튼으로 두 개의 양식 제출

하나의 버튼으로 두 개의 양식을 제출하는 것은 간단한 작업처럼 보일 수 있지만 기존 방식으로는 불가능합니다. 양식 제출 방법. 이는 양식을 제출하면 현재 페이지에서 양식에 지정된 작업으로 이동하기 때문입니다.

해결책: 비동기식 양식 제출

두 양식을 동시에 제출하려면, 전통적인 양식 제출 프로세스를 우회해야 합니다. JavaScript를 통해 첫 번째 양식을 비동기적으로 제출함으로써 이를 달성할 수 있으며, 이를 통해 첫 번째 양식을 방해하지 않고 두 번째 양식을 제출할 수 있습니다.

JavaScript 비동기 양식 제출:

다음 JavaScript 코드는 첫 번째 양식을 비동기식으로 제출하는 방법을 보여줍니다.

var f = document.forms.updateDB;
var postData = [];
for (var i = 0; i < f.elements.length; i++) {
    postData.push(encodeURIComponent(f.elements[i].name) + "=" +
        encodeURIComponent(f.elements[i].value));
}
var xhr = new XMLHttpRequest();
xhr.open("POST", "mypage.php", true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send(postData.join("&"));

첫 번째 양식이 제출되면 비동기적으로 표준 양식 submit() 메서드를 사용하여 두 번째 양식을 즉시 제출할 수 있습니다.

document.forms.payPal.submit();

업데이트된 솔루션(2023):

업데이트된 솔루션은 가져오기를 활용합니다. () 및 최신 JavaScript 구문:

function submitBothForms() {
    const { updateDB, payPal } = document.forms;
    fetch(updateDB.action, {
        method: updateDB.method,
        headers: { "content-type": updateDB.enctype },
        body: new FormData(updateDB),
    });

    payPal.submit();
}

이 업데이트된 솔루션은 이전에 비해 더 간결하고 성능이 뛰어난 구현을 제공합니다. 원래 답변에.

위 내용은 버튼 하나로 두 개의 양식을 동시에 제출하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.