我有一個窗體,它在Colorbox中打開並通過Ajax/JQuery提交給它自己。但是,似乎傳遞的數據不包括提交按鈕本身的值。無論我使用多個提交還是僅使用一個,$ _POST ['submitButton']中都沒有數據,並且它不響應isset()或empty()。提交按鈕不通過AJAX/JQuery返回值到自我處理的形式
表格的其他部分只是很好。我可以回聲$ _ POST [ '名']和$ _POST [ '電子郵件'],只是沒有$ _ POST [ '提交按鈕']
這裏是(的一個精簡版)我的表格:
<form id="sub-process" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input name="name" type="text" value="">
<input name="email" type="text" value="">
<input name="submitButton" type="submit" value="Submit">
</form>
這裏是jquery處理通過AJAX提交的表單,而不是HTTP請求。
jQuery(function(){
jQuery('.cbox-form').colorbox({maxWidth: '75%', onComplete: function(){
cbox_submit();
}});
});
function cbox_submit()
{
jQuery("#sub-process").submit(function(){
jQuery.post(
jQuery(this).attr('action'),
jQuery(this).serialize(),
function(data){
jQuery().colorbox({html: data, onComplete: function(){
cbox_submit();
}});
}
);
return false;
});
}
'serialize'將不包含提交按鈕的值,因爲表單不是由提交按鈕提交的。只有「成功的控件」被序列化爲字符串。 – itachi
這令人沮喪。我正在考慮用隱藏的值來解決它,但是根據點擊哪個按鈕並提交表單,我會用什麼JS來更改隱藏按鈕的值? – user1621945
在提交按鈕上放置一個點擊處理程序,並讓它向它提交的對象添加一個適當的屬性。 – Barmar