Jos*_*eta 5 php session jquery shopping-cart paypal
我$_SESSION
用来为我的网上商店动态创建表单.这些表单包含客户想要的产品的自定义信息.这是布局:
第1页
客户填写看起来像这样的表单:
<form action="page2" method="post">
<input type="text" name="size">
<input type="text" name="color">
<input type="submit" name="submit" value="Review Order">
</form>
Run Code Online (Sandbox Code Playgroud)
第2页
客户查看订单详情,并可选择添加更多产品.客户返回第1页订购另一个.所有客户的订单将以第2页的形式显示.
看起来像这样:
Size: 1
Color: blue
Click Here To Checkout
Size: 2
Color:green
Click Here To Checkout
Size:3
color:red
Click Here To Checkout
Run Code Online (Sandbox Code Playgroud)
我想要的是一个将所有订单添加到PayPal购物车的按钮.当然,他们可以通过点击单独添加每个订单Click Here To Checkout
,但是他们将不得不经历一个大循环来添加多个产品.
我希望客户能够添加尽可能多的产品,然后单击一个按钮将所有订单添加到购物车.
这是我尝试的但显然不起作用:
<script>
$(document).ready(function(){
$('#clickAll').on('click', function() {
$('input[type="submit"]').trigger('click');
});
});
</script>
<form action="" method="post">
<input type="text" name="name">
<input type="submit" name="submit" value="submit">
</form>
<form action="" method="post">
<input type="text" name="name">
<input type="submit" name="submit" value="submit">
</form>
<form action="" method="post">
<input type="text" name="name">
<input type="submit" name="submit" value="submit">
</form>
<button id="clickAll">Submit All</button>
Run Code Online (Sandbox Code Playgroud)
这是使用$_SESSION
以下命令生成动态表单的php脚本:
<?php
if(isset($_POST['submit'])) :
$test = array(
'size' => $_POST['size'],
'color' => $_POST['color'],
'submit' => $_POST['submit']
);
$_SESSION['testing'][] = $test;
endif;
if(isset($_SESSION['testing'])) :
foreach($_SESSION['testing'] as $sav) {
?>
<form action="paypal.com/..." method="post">
<input type="text" name="size" value="<?php echo $sav['size']; ?>">
<input type="text" name="color" value="<?php echo $sav['color']; ?>">
<input type="submit" name="submit" value="Click Here to Checkout">
</form>
<?php } endif; ?>
Run Code Online (Sandbox Code Playgroud)
所以问题是,如何使用ONE按钮提交所有表单?
您是否尝试过使用 $.ajax 来做到这一点?您可以添加 foreach,或在 Onsucces 函数上调用另一个表单。另一种方法是将所有内容更改为一种形式,并使用指向正确“抽象”形式的数组:
<form action="" method="post">
<input type="text" name="name[]">
<input type="text" name="example[]">
<input type="text" name="name[]">
<input type="text" name="example[]">
<input type="text" name="name[]">
<input type="text" name="example[]">
<button id="clickAll">Submit All</button>
</form>
Run Code Online (Sandbox Code Playgroud)
在 PHP 中:
foreach ($_POST['name'] as $key => $value) {
$_POST['name'][$key]; // make something with it
$_POST['example'][$key]; // it will get the same index $key
}
Run Code Online (Sandbox Code Playgroud)
这是一个工作的 jsFiddle:http://jsfiddle.net/SqF6Z/3/
基本上,class
为每个添加一个form
并trigger()
在该上提交class
。就像这样:
HTML(仅示例):
<form action="http://www.google.com" method="get" class="myForms" id="1stform">
<input type="text" value="1st Form" name="q1" />
</form>
<form action="http://www.google.com" method="get" class="myForms" id="2ndform">
<input type="text" value="2nd Form" name="q2" />
</form>
<form action="http://www.google.com" method="get" class="myForms" id="3rdform">
<input type="text" value="3rd Form" name="q3" />
</form>
<input type="button" id="clickMe" value="Submit ALL" />
Run Code Online (Sandbox Code Playgroud)
jQuery:
$('.myForms').submit(function () {
console.log("");
return true;
})
$("#clickMe").click(function () {
$(".myForms").trigger('submit'); // should show 3 alerts (one for each form submission)
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
39322 次 |
最近记录: |