使用一个按钮提交多个表单
我正在使用$_SESSION
为我的网上商店动态创建表单。 这些表单包含客户想要的产品的自定义信息。 这是布局:
第1页
客户填写看起来像这样的表单:
第2页
客户查看订单详细信息,并可选择添加更多产品。 客户返回第1页订购另一个。 所有客户的订单将以第2页的forms显示。
看起来像这样:
Size: 1 Color: blue Click Here To Checkout Size: 2 Color:green Click Here To Checkout Size:3 color:red Click Here To Checkout
我想要的是一个将所有订单添加到PayPal购物车的按钮。 当然,他们可以通过单击Click Here To Checkout
单独添加每个订单,但是他们将不得不通过一个大循环来添加多个产品。
我希望客户能够添加尽可能多的产品,然后单击一个按钮将所有订单添加到购物车。
这是我尝试过但显然不起作用 :
$(document).ready(function(){ $('#clickAll').on('click', function() { $('input[type="submit"]').trigger('click'); }); });
这是使用$_SESSION
生成动态表单的php脚本 :
$_POST['size'], 'color' => $_POST['color'], 'submit' => $_POST['submit'] ); $_SESSION['testing'][] = $test; endif; if(isset($_SESSION['testing'])) : foreach($_SESSION['testing'] as $sav) { ?>
所以问题是,我如何用一个按钮提交所有表格?
你试过用$ .ajax做的吗? 您可以添加foreach,或在Onsucces函数上调用另一个表单。 另一种方法是使用指向正确“抽象”forms的数组将所有更改为一个表单:
在PHP中:
foreach ($_POST['name'] as $key => $value) { $_POST['name'][$key]; // make something with it $_POST['example'][$key]; // it will get the same index $key }
这是一个有效的jsFiddle: http : //jsfiddle.net/SqF6Z/3/
基本上,为每个form
添加一个class
,并trigger()
class
的提交。 像这样:
HTML(仅限示例):
jQuery的:
$('.myForms').submit(function () { console.log(""); return true; }) $("#clickMe").click(function () { $(".myForms").trigger('submit'); // should show 3 alerts (one for each form submission) });
FWIW,我这样做是通过创建一个iframe,使得第二个表单的目标然后像这样提交
//create the iframe $('
并创建这样的双提交:
function dualSubmit() { document.secondForm.target = 'phantom'; document.secondForm.submit(); document.firstForm.submit(); }
作品!
首先创建循环获取所有表单id并将它们发送到ajax。
创建按钮以按顺序提交
Save & Close
然后在成功后停止ajax调用。也不要忘记登录到控制台。
所有ajax完成后,此代码在弹出窗口和关闭弹出窗口中起作用。