따라서 JQuery / Ajax HTML을 통해 제출하는 양식이 있습니다.
<form id="emailsignup" method="post">
<p><input name="contactfirst_name" placeholder="Your First Name" type="text">
<input name="contactemail” placeholder="[email protected]" type="text">
<button class="btn btn-success btn-large">Sign Me Up</button>
<input name="action" value="ext_addcontact" type="hidden">
<input name="selectedgroupname" value="Website Opt-Ins" type="hidden">
<input name="groupownerid" value="[p:pid]" type="hidden">
<input name="redirect" value="path/to/success.html" type="hidden">
<input name="redirect_error" value="path/to/failure.html" type="hidden">
그리고 Javascript JAVASCRIPT를 통해 전달합니다.
<script>
$(document).ready(function(){
$("button").click(function(){
$.post("path/to/index.php", $(".emailsignup").serialize());
});
});
</script>
좋아요, 여기가 재미있어집니다. 서버 가이 출력을 찾고 있기 때문에 데이터가 직렬화되는 형식을 변경해야합니다 .
contact % 5Bfirst_name % 5D = data & contact % 5Bemail % 5D = data & etc = data
편집 : 서버가 연락처 후 대괄호 안에있는 단어를 찾고 있습니다 (IE : 직렬화 할 때 대괄호 또는 해당 문자 코드를 입력하여 contactfirst_name을 contact [first_name]으로 바꾸고 contactemail을 입력하는 방법을 찾아야합니다. contact [email])-하지만 contact [first_name]과 contact [email]의 이름 만 바꿀 수는 없습니다. 이것은 마케팅 자동화 플랫폼에서 호스팅되는 양식이며 [first_name] 및 [email]은 시스템 변수입니다. 즉, 페이지로드시 변환 될 수 있다는 의미입니다. 두 가지 모두에 대해 동일한 구문을 사용하는 이유는 무엇입니까? 나를).
그래서 직렬화 후 대괄호를 삽입하기 위해 Javascript를 사용하려고 시도하고 있지만 실제로 전체 이름을 철자하지 않았습니다.
양식이 호스팅되는 플랫폼에서 인코딩되지 않은 문자 (예 : contact [first_name], contact [email]) 트리거 변수를 사용하기 때문에 양식의 이름을 변경하는 것은 옵션이 아닙니다. 같은 이유로 내가 게시하는 php 파일을 변경하는 것은 폐쇄 된 플랫폼이기 때문에 옵션이 아닙니다.
예를 들어 beforesubmit으로이를 수행 할 수있는 방법이 있습니까? 그렇다면 스크립트에 삽입해야하며 전달하는 인수는 무엇입니까?
여기에서 편안함 수준의 측면에서 W3Schools 및 다른 웹 사이트에서 찾은 예제에서이 스크립트를 조합했습니다. 자리 표시자가있는 클래스 / ID를 대체하는 것 외에는 일반적으로 Jquery 및 Javascript에 대한 초보자입니다.
그래서 저는 바보처럼 느껴집니다. 문제는 데이터가 직렬화 방식으로 게시되고 있다는 것입니다. 각 필드에 ID를 설정 한 다음 .setAttribute를 통해 이름을 변경하여 필요한 것을 얻을 수있었습니다. 나는 이것이 매우 부피가 크고 훨씬 더 간단하고 우아 할 수 있다고 확신하지만, 나는 배우고 있습니다.
function quoteRequest() {
var fName = document.getElementById("fname");
var lName = document.getElementById("lname");
var contactEmail = document.getElementById("email");
var productQty = document.getElementById("qty");
var additionalInfo = document.getElementById("additionalinfo");
var product = document.getElementById("product");
var productnum = document.getElementById("productnum");
fName.setAttribute('name', 'contact\[first_name\]');
lName.setAttribute('name', 'contact\[last_name\]');
contactEmail.setAttribute('name', 'contact\[email\]');
productQty.setAttribute('name', 'contact\[qty\]');
product.setAttribute('name', 'contact\[product\]');
productnum.setAttribute('name', 'contact\[productnum\]');
document.getElementById("quoteform").submit();
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다