自动添加然后POST的HTML表单
HTML form that automatically adds and then POST
我正在尝试创建一个HTML表单,将为产品选择的各种选项的价格相加,然后POST到PayPal的Buy Now功能。
这是PayPal立即购买表单的一个例子。我正在尝试添加功能,以允许每个变体在发布前添加到最终金额。为什么PayPal一开始就不允许这样做,我无法理解。不过没有时间咆哮了。
下面是Paypal的一个"一口价"表单示例。问题是你只能选择最终价格。它不允许矩阵式定价。
例如:商品价格:$50
变体1:
---选项A:+$25
---选项B:+50
变体2:
---选项A:+10美元
---选项B:+15
因此,如果您选择1A和2B,表单会显示$50+$25+$15=$90
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<!-- Identify your business so that you can collect the payments. -->
<input type="hidden" name="business" value="herschelgomez@xyzzyu.com">
<!-- Specify a Buy Now button. -->
<input type="hidden" name="cmd" value="_xclick">
<!-- Specify details about the item that buyers will purchase. -->
<input type="hidden" name="item_name" value="Hot Sauce">
<input type="hidden" name="currency_code" value="USD">
<!-- Provide a dropdown menu option field. -->
<input type="hidden" name="on0" value="Type">Type of sauce <br />
<select name="os0">
<option value="Select a type">-- Select a type --</option>
<option value="Red">Red sauce</option>
<option value="Green">Green sauce</option>
</select> <br />
<!-- Provide a dropdown menu option field with prices. -->
<input type="hidden" name="on1" value="Size">Size <br />
<select name="os1">
<option value="06oz">6 oz. bottle - $5.95 USD</option>
<option value="12oz">12 oz. bottle - $9.95 USD</option>
<option value="36oz">3 12 oz. bottles - $19.95 USD</option>
</select> <br />
<!-- Specify the price that PayPal uses for each option. -->
<input type="hidden" name="option_index" value="1">
<input type="hidden" name="option_select0" value="06oz">
<input type="hidden" name="option_amount0" value="5.95">
<input type="hidden" name="option_select1" value="12oz">
<input type="hidden" name="option_amount1" value="9.95">
<input type="hidden" name="option_select2" value="36oz">
<input type="hidden" name="option_amount2" value="19.95">
<!-- Display the payment button. -->
<input type="image" name="submit" border="0"
src="https://www.paypal.com/en_US/i/btn/btn_buynow_LG.gif"
alt="PayPal - The safer, easier way to pay online">
<img alt="" border="0" width="1" height="1"
src="https://www.paypal.com/en_US/i/scr/pixel.gif" >
</form>
在页首或表单前添加以下脚本。
<script>
selects = array(0,0);
function recordSelect(i){
++selects[i];
if (selects[i] > 1) selects[i] = 1;
if (selects[0] == 1 && selects[1] == 1 ) document.getElementById('#YourformId').submit();
}
</script>
这个解决方案假设您已经为表单设置了id属性值。然后,在表单中的每个选择中,使用recordSelect()添加onChange事件,如下所示:
<select name="os0" onchange="recordSelect(0)">
<option value="Select a type">-- Select a type --</option>
<option value="Red">Red sauce</option>
<option value="Green">Green sauce</option>
</select>
<select name="os1" onchange="recordSelect(1)">
<option value="Select a type">-- Select a type --</option>
<option value="another">something</option>
<option value="another2">item</option>
</select>
请注意recordSelect的传递参数
我希望你的问题是理论性的,因为在网页上计算价格是完全不安全的。任何知道wget命令的人都可以伪造一个帖子,该帖子会以任意价格订购商品,甚至是免费的。
这里有一个更好的方法。
-
将购物车放在服务器上。每当您在网页上显示购物车时,都会发出一张一次性票证,用于识别购物车并允许用户发布一次。一定要删除票证中的所有规则性——没有可见的时间戳、序列号等。在将票证附加到结果之前,最好对其进行加密或散列处理。此外,要确保这张票在有限的时间内有效,比如说5分钟,这样被盗的票的保质期就会很短。
-
在服务器上进行所有价格计算,这样用户就不会欺骗服务器进行未经授权的折扣。
这种技术和其他类似的技术被称为代表性状态转移(ReST)。以下是一个很好的描述:http://en.wikipedia.org/wiki/REST
祝你创业成功。
- 可以't让我的if语句处理js中的html表单输入
- HTML表单提交时未执行外部函数
- 如何将输入(type=text)从html表单传递到javascript函数
- 多级HTML表单
- 使用html表单中的参数调用JavaScript函数
- javascript弹出窗口没有正确加载html表单
- Javascript/RegEx未验证HTML表单
- JavaScript”;复制“;HTML表单
- 使用Web Html表单创建Javascript数组
- 用PHP发送html表单和文件附件
- 单击鼠标,用MySQL数据填充html表单输入字段
- 从HTML表单发布blob的表单输入类型是什么
- 我的html表单无法验证.请参阅代码片段中的html代码和java脚本
- JavaScript-HTML表单到JSON(空值)和格式
- HTML表单将数据POST到MySQL
- 获取html表单信息并使用ajax将其推送到PHP
- 使用PHP通过HTML表单选项选择器过滤MYSQL结果
- javascript,HTML表单:单击按钮插入NULL
- 如何在HTML表单中提交我的下拉选择
- 将HTML表单发布到iframe会导致浏览器历史记录出现问题