所以,我有我通過JQuery/AJAX HTML提交表單:可能在JQuery中更改名稱/序列化輸出?
<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>
OK,所以這裏的地方變得樂趣。我需要改變其中的數據序列化格式的方式,因爲服務器正在尋找
這樣的輸出:
聯繫人%5Bfirst_name%5D =數據&觸點%5Bemail%5D =數據&等=數據
編輯:服務器接觸之後尋找的話是在方括號 (IE:我需要找到一種方法,序列,輸入時的方括號或它們的字符代碼等價物轉contactfirst_name接觸[first_name]和contactemail聯繫到[email]) - 但是,我不能只重命名聯繫人[first_name]和聯繫人[email]。這是一個託管在營銷自動化平臺上的表單,[first_name]和[email]是系統變量,這意味着它們將在頁面加載時轉換(爲什麼使用相同的語法我都不知道...超越我)。
所以,我想我試圖使用JavaScript來插入的方括號後的序列化,但,卻從來沒有拼寫出全名。
更改窗體上的NAMES不是一個選項,因爲使用未編碼字符(即:contact [first_name],contact [email])觸發表單所在平臺上的變量。出於同樣的原因,更改我發佈的php文件不是一個選項,因爲它是一個封閉的平臺。
有任何方式,比如說,beforesubmit做到這一點?如果是這樣,我在哪裏插入到我的腳本,我通過什麼參數?
在這裏的舒適度方面,我從W3School和另一個網站上找到的例子拼湊了這個腳本 - 我在Jquery和Javascript中都是新手,除了替換帶有佔位符的classes/id之外。
你是對的,不正確。我可以編輯名稱屬性 - 但是,我實際上不能使用文字名稱(聯繫[first_name],聯繫[email]) - 任何封裝在方括號中的東西,系統,看起來像一個變量,所以在加載時會替換文本與系統中編碼的變量。顯然它不喜歡我的URI編碼字符。我正在研究formData.replace函數,以查看是否有其他方式可以重新插入方括號vs/contactfirst_name /,'contact [first_name]',因爲這會在頁面加載時轉換爲'contactValued Customer 」。 – user3366357 2014-09-26 20:51:10
行 - 所以我採用了這種格式,你給了我,並能夠成功地使用formData.replace函數添加回我的方括號中,並且它正確顯示(hooray)在頁面加載。然而,它仍然是失敗的,我沒有辦法從服務器獲取特定錯誤,以查看我出錯的地方。執行formData.replaces之後是否可以序列化?我不明白爲什麼它會有所作爲...] – user3366357 2014-09-26 21:28:48