1

我有一个网页,其中包含需要购买贝宝的产品。我使用了一个选择框来选择该产品可用的各种选项。

虽然我已经成功集成了贝宝,并且 html 页面正在将“金额”传递给贝宝页面。我无法做的是将与所选选项相对应的“item_name”传递给贝宝页面。

非常感谢任何帮助,在此先感谢。

    <form name="" action="shop_paypal.php" method="post">
        <input name="cmd" type="hidden" value="_xclick" />
        <input name="no_note" type="hidden" value="1" />
        <input name="lc" type="hidden" value="UK" />
        <input name="currency_code" type="hidden" value="USD" />
        <input name="bn" type="hidden" value="PP-BuyNowBF:btn_buynow_LG.gif:NonHostedGuest" />
       <div class="price-bottom-box">
       <!--<input type="text" name="item_name" id="item_name"value="20,000 PINS" hidden="true"/>-->
        <select name="amount" id="amount" style="width:256px; height:32px;">
            <option value="18" id="1">10,000 PINS - $18 </option>
            <option value="35" id="2">20,000 PINS - $35</option>
            <option value="75" id="3">30,000 PINS - $75</option>
            <option value="140" id="4">50,000 PINS - $140</option>
            </select>
    <input type = "image" value = "submtbtn" name = "submtbtn"  src="images/buy-now-normal-bg.jpg" id="Image1">
</form>
4

1 回答 1

2

注意:我认为不确保您首先了解某些内容是不道德的:很有可能发送“shop_paypal.php”任何金额值。请不要相信以“金额”形式发送的值。您应该使用作为 item_name(甚至更好的 item_id)传递的值,并查找与请求的项目对应的值。

现在如何以看似不安全的方式进行操作:

替换您的代码:

<!--<input type="text" name="item_name" id="item_name"value="20,000 PINS" hidden="true"/>-->
<select name="amount" id="amount" style="width:256px; height:32px;">
     <option value="18" id="1">10,000 PINS - $18 </option>
     <option value="35" id="2">20,000 PINS - $35</option>
     <option value="75" id="3">30,000 PINS - $75</option>
     <option value="140" id="4">50,000 PINS - $140</option>
     </select>

有了这个:

<select id="item_name" name="item_name" style="width:256px; height:32px;"></select>
<input id="amount" name="amount" type="hidden" value=""/>
<script>
  var items = [
      { name: "10,000 PINS", amount: 18 },
      { name: "20,000 PINS", amount: 35 },
      { name: "30,000 PINS", amount: 75 },
      { name: "50,000 PINS", amount: 140 }
  ];
  var itemNameElement = document.getElementById("item_name");

  itemNameElement.onchange = (function(){
      var amount = items[this.selectedIndex].amount;
      document.getElementById("amount").value = amount;
  }).bind(itemNameElement);

  document.getElementById("amount").value = items[0].amount;
  for(var i=0; i<items.length; i++){
      var item = document.createElement("option");
      item.value = items[i].name;
      item.text = items[i].name+" - $"+items[i].amount;

      itemNameElement.add(item);
  }
</script>
于 2013-07-26T22:00:57.457 回答