自动添加然后POST的HTML表单

时间:2012-07-29 20:59:54

标签: javascript html paypal html-form

我正在尝试创建一个HTML表单,该表单将添加为产品选择的各种选项的价格,然后POST到PayPal的“立即购买”功能。

以下是PayPal立即购买表格的示例。我正在尝试添加功能,以便在发布之前将每个变体添加到最终数量。为什么PayPal不允许这一点开始超越我。没时间咆哮。

以下是带有定价的“立即购买”表单的paypals示例。问题是您只能选择最终价格。它不允许矩阵式定价。

例如: 商品价格: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>

2 个答案:

答案 0 :(得分:1)

在页面头部或表单前添加以下脚本。

<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的传递参数

答案 1 :(得分:0)

我希望你的问题是理论上的,因为在网页上计算价格是完全不安全的。任何知道wget命令的人都可以欺骗一个以任意价格订购商品的帖子 - 甚至免费。

这是一个更好的方法。

  1. 将购物车放在服务器上。每当您在网页上显示购物车时,都会发出一次性票证,标识购物车并让用户发布一次。请务必从故障单中删除所有规律性 - 没有可见的时间戳,序列号等。最好在将票证附加到结果之前加密或散列票证。此外,请确保机票在有限的时间内有效 - 例如5分钟,以便被盗的机票保质期短。

  2. 在服务器上进行所有价格计算,以便用户不会欺骗您的服务器提供未经授权的折扣。

  3. 此技术和其他类似技术称为“代表性状态转移”或“ReST”。这是一个很好的描述:http://en.wikipedia.org/wiki/REST

    祝成功创业。