2011-10-15 57 views
1

我試圖在PayPal表單中將可變金額(這是總訂單值)傳遞給「金額」變量。但是,該值是從下拉列表中生成的。我搜索了論壇並嘗試了一些東西,但無法找到我認爲是簡單的解決方案。將JavaScript變量傳遞給Paypal

以下是代碼。

正如你所看到的,我已經嘗試了幾個選項,但都沒有通過從下拉列表中選擇的變量。

我很欣賞PayPal安全性的問題......但是,除此之外,是否有人擁有比我大得多的腦,他們可以發現一個明顯的解決方案。

謝謝!

安迪

PS如果我改變了var '劉德華',比方說,33,這一切工作正常。

<label for="CurrentExcess">Current Excess (£100 - £500 Max.)</label> 

<select id="dropdown"> 
    <option value="invalid entry">please select</option> 
    <option value="12">£100</option> 
    <option value="18">£150</option> 
    <option value="24">£200</option> 
    <option value="30">£250</option> 
    <option value="36">£300</option> 
    <option value="42">£350</option> 
    <option value="48">£400</option> 
    <option value="54">£450</option> 
    <option value="60">£500</option> 
    <option value="all us to discuss">more then £500</option> 
</select> 


     </div> 
     <div> 
<label for="price">Your membership fee will be: £</label> 
<input type="text" name="price" value="" id="mytext" /> 

<script type="text/javascript"> 
var mytextbox = document.getElementById('mytext'); 
var mydropdown = document.getElementById('dropdown'); 
mydropdown.onchange = function(){ 
     mytextbox.value = this.value; 
} 
document.getElementById("finalpaypal").value = mytext; 
var andy = mytext 
</script> 


<form name="_xclick" action="https://www.paypal.com/cgi-bin/webscr" method="post"> 
<input type="hidden" name="cmd" value="_cart"> 
<input type="hidden" name="business" value="[email protected]"> 
<input type="hidden" name="item_name" value="My Title"> 
<input type="hidden" name="quantity" value="1"> 
<input type="hidden" name="item_number" value="11"> 
<!-- <script> 
document.write('<input type="hidden" name="amount" value='+andy+'>'); 
</script> --> 
<input type="hidden" name="amount" id="finalpaypal"> 
<input type="hidden" name="no_note" value="1"> 
<input type="hidden" name="currency_code" value="GBP"> 
<input type="hidden" name="add" value="1"> 

</form> 



</body> 
</html> 

UPDATE:感謝從sdleihssirhc輸入。這確實有幫助,但因爲我仍然在努力掙扎,所以我對這個問題有些厭煩。

我沒有強調的一點是,我試圖從'mytext'中將值傳遞給傳遞給paypal的'amount'。我不在乎如何,但它看起來像是用'OnChange'計算的值......這一切都有點瘋狂。

代碼的主要部分現在在post的最後一位讀取如下。

任何明智的想法任何人。非常感謝!!!!

<label for="CurrentExcess">Current Excess (£100 - £500 Max.)</label> 

<select id="dropdown"> 
    <option value="invalid entry">please select</option> 
    <option value="12">£100</option> 
    <option value="18">£150</option> 
    <option value="24">£200</option> 
    <option value="30">£250</option> 
    <option value="36">£300</option> 
    <option value="42">£350</option> 
    <option value="48">£400</option> 
    <option value="54">£450</option> 
    <option value="60">£500</option> 
    <option value="all us to discuss">more then £500</option> 
</select> 


     </div> 
     <div> 
<label for="price">Your membership fee will be: £</label> 
<input type="text" name="price" value="" id="mytext" /> 
<form name="_xclick" action="https://www.paypal.com/cgi-bin/webscr" method="post"> 
<input type="hidden" name="cmd" value="_cart"> 
<input type="hidden" name="business" value="[email protected]"> 
<input type="hidden" name="item_name" value="My Title"> 
<input type="hidden" name="quantity" value="1"> 
<input type="hidden" name="item_number" value="11"> 
<input type="hidden" name="amount" id="finalpaypal"> 
<input type="hidden" name="no_note" value="1"> 
<input type="hidden" name="currency_code" value="GBP"> 
<input type="hidden" name="add" value="1"> 

</form> 

<script> 
var mytextbox = document.getElementById('mytext'); 
var mydropdown = document.getElementById('dropdown'); 
var finalpaypal = document.getElementById('finalpaypal'); 
mydropdown.onchange = function(){ 
mytextbox.value = this.value; 
finalpaypal.value = this.value; 
} 
document.getElementById("finalpaypal").value = mytext; 
</script> 

</body> 
</html> 

回答

0

我想到的第一個問題是與你的HTML - 的JavaScript - HTML排序。你有這條線在你的JS ...

document.getElementById("finalpaypal").value = mytext.value; 

...但是ID爲「finalpaypal」的元素不存在,但。在所有表單的HTML之後,你能否將<script>移動到頁面底部?

第二個問題也在那條線上。你試圖將輸入的值設置爲一個變量(據我所知)並不存在。如果您想要的值是一樣的你設置的文本框,只是這樣做:

document.getElementById("finalpaypal").value = mytextbox.value; 

但後來我們到了最後一個問題:你應該把此行的事件處理中。

所以最終的代碼看起來像這樣:

<!-- all of the form's HTML --> 

<script> 
var mytextbox = document.getElementById('mytext'); 
var mydropdown = document.getElementById('dropdown'); 
var finalpaypal = document.getElementById('finalpaypal'); 
mydropdown.onchange = function(){ 
    mytextbox.value = this.value; 
    finalpaypal.value = this.value; 
} 
document.getElementById("finalpaypal").value = mytext; 
</script> 
+0

對不起男人的jsfiddle例子,我點擊錯誤的編輯,它認爲這是我的帖子 – david

+0

我已經更新了我的第一篇文章。任何人如何通過一個更新命令通過從下拉列表中選擇一個變量的明智的想法 - 通過一個PAYPAL提交的'AMOUNT'區域....我會一直如此GRACEEFUL! – user996350

0

爲了使用select標記,你可以把它列入你的PayPal按鈕的形式。您必須使用on0os0標籤。

你可以閱讀更多關於它在這裏:click here

,你可以在這裏看到的例子:click here

,併爲您right here

<div> 
<form name="_xclick" action="https://www.paypal.com/cgi-bin/webscr" method="post"> 
<input type="hidden" name="cmd" value="_cart"> 
<input type="hidden" name="business" value="[email protected]"> 
<input type="hidden" name="item_name" value="My Title"> 
<input type="hidden" name="quantity" value="1"> 
<input type="hidden" name="item_number" value="11"> 
<input type="hidden" name="no_note" value="1"> 
<input type="hidden" name="currency_code" value="GBP"> 
<input type="hidden" name="add" value="1"> 
<!-- Here are your select options--> 
<input type="hidden" name="on0" value="prices"> 
<select name="os0"> 
<option value="please select">please select</option> 
<option value="12">£100</option> 
<option value="18">£150</option> 
<option value="24">£200</option> 
<option value="30">£250</option> 
<option value="36">£300</option> 
<option value="42">£350</option> 
<option value="48">£400</option> 
<option value="54">£450</option> 
<option value="60">£500</option> 
</select> 
<!-- This is how paypal will get the prices from your options menu--> 
<input type="hidden" name="option_index" value="1"> 
<input type="hidden" name="option_select0" value="12"> 
<input type="hidden" name="option_amount0" value="100"> 
<input type="hidden" name="option_select1" value="18"> 
<input type="hidden" name="option_amount1" value="150"> 
<input type="hidden" name="option_select2" value="24"> 
<input type="hidden" name="option_amount2" value="200"> 
<!--etc...--> 

<!-- Here is the button --> 
<input type="submit" value="Buy Now">