我試圖從一個WordPress頁面提交表單以駐留在同一個目錄中的index.php在頁面上使用自定義HTML選項生成表格,使用jQuery serializeArray PHP腳本()將數據發送到php腳本。jQuery的serializeArray()WordPress的
在控制檯中,當我提交jQuery("#formID").serializeArray();
它返回其存儲的名稱和各自的輸入端的值的對象。
然而,當我使用jQuery("resultDiv").load("phpScript.php", jQuery("#formID").serializeArray());
的PHP $_POST
變量爲空。
我已經在過去使用這種方法,它已經奏效。出於某種原因,在這種情況下它不起作用。任何人都有這個問題?這裏的腳本如下:
<script type="text/javascript">
//need to validate the form
jQuery("#sendForm").click(function() {
var email = jQuery("#sub_email").val();
var email2 = jQuery("#sub_verify_email").val();
var type_reseller = jQuery("#sub_type").val();
var province = jQuery("#sub_prov").val();
var country_from = jQuery("#sub_country").val();
var password = jQuery("#password").val();
var pw_verify = jQuery("#pw_verify").val();
if ((email!=email2) || (email==""))
{
alert("Email addresses do not match. Please re-enter.");
jQuery("#sub_email").focus();
jQuery("#sub_email").select();
}
else
{
if (type_reseller=="")
{
alert("Please enter a Reseller Type");
}
else
{
if (province=="--")
{
alert("Please select a Province or State");
}
else
{
if (country_from == "")
{
alert("Please select which country you are from");
jQuery("#sub_country").focus();
jQuery("#sub_country").select();
}
else
{
if ((password!=pw_verify) || (password==""))
{
alert("Your Password entry does not match. Please re-enter");
jQuery("#password").focus();
jQuery("#password").select();
}
else
{
jQuery("#submitResult").html("<h2>Sending Form...</h2>");
//submit the form to the database
jQuery("#submitResult").load("../subscribeSubmit.php", jQuery("#Subscribe").serializeArray());
}
}
}
}
}
});
//-->
//need to submit the form using ajax
</script>
的
JSON.stringify(jQuery("#Subscribe").serializeArray())
控制檯的項,輸出結果......
"[{"name":"sub_conf","value":"Yes"},{"name":"sub_conf2","value":"Yes"},{"name":"sub_type","value":"Service Provider"},{"name":"sub_firstname","value":"hello"},{"name":"sub_lastname","value":"world"},{"name":"sub_company","value":"anycompany"},{"name":"sub_city","value":"anycity"},{"name":"sub_prov","value":"ON"},{"name":"sub_country","value":"Canada"},{"name":"sub_country","value":""},{"name":"sub_email","value":"[email protected]"},{"name":"sub_verify_email","value":"[email protected]"},{"name":"password","value":"hello"},{"name":"pw_verify","value":"hello"},{"name":"nl_version","value":"H"},{"name":"sub_comments","value":"this is a comment"},{"name":"form_submitted","value":"TRUE"}]"
當我用print_r($_POST)
上的目標腳本,看看有什麼腳本正在接受它返回Array() (empty array)
。
網絡的響應看起來是這樣的:
General:
Request URL:http://example.com/subscribeSubmit.php
Request Method:POST
Status Code:200 OK
Remote Address:222.222.222.222:80
Referrer Policy:no-referrer-when-downgrade
Response Header:
Connection:keep-alive
Content-Type:text/html; charset=UTF-8
Date:Tue, 25 Jul 2017 18:04:51 GMT
Server:nginx
Transfer-Encoding:chunked
X-Powered-By:PHP/7.1.7
X-Powered-By:PleskLin
Request Headers
Accept:text/html, */*; q=0.01
Accept-Encoding:gzip, deflate
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:0
Cookie:pum-7361=true
Host:example.com
Origin:http://example.com
Referer:http://example.com/subscribe/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36
X-Requested-With:XMLHttpRequest
任何有識之士將是有益的。
有兩件事:首先,您應該更新問題,使用jQuery(「#Subscribe」)生成的更好的格式化數據。serializeArray()';您提供的控制檯輸出不清楚數據結構究竟是什麼(嘗試序列化爲JSON)。其次,檢查控制檯網絡選項卡,以查看請求中發送的數據。 – wmorrell
@wmorrell我爲你設置了'console.log'輸出格式(比我預期的更耗時)。 –