Передача переменной JavaScript в Paypal - PullRequest
1 голос
/ 15 октября 2011

Я пытаюсь передать переменную сумму (это общая сумма заказа) в переменную «сумма» в форме PayPal. Однако значение генерируется из выпадающего списка. Я просмотрел форумы и попробовал несколько вещей, но не могу найти то, что, по моему мнению, было бы простым решением.

Ниже приведен код.

Как вы можете видеть, я попробовал несколько вариантов, но ни один из них не передал переменную, выбранную из выпадающего списка.

Я ценю проблемы с безопасностью Paypal ... но кроме этого, есть ли кто-нибудь с гораздо большим мозгом, чем мой, кто может найти очевидное решение.

Спасибо !!

Andy

PS Если я изменю var 'andy' на, скажем, 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="me@me.com">
<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>

ОБНОВЛЕНИЕ: Спасибо за ввод от sdleihssirhc. Это помогает, но, поскольку я немного увлекаюсь javascript, я все еще борюсь.

Что я не подчеркнул, так это то, что я пытаюсь получить значение из «mytext» в «сумму», которое передается в PayPal. И мне все равно, как, но кажется, что, поскольку значение рассчитывается с помощью OnChange ... все это немного мешает.

Основные биты кода теперь читаются, как показано ниже, в последнем бите поста.

ЛЮБЫЕ ЯРКИЕ ИДЕИ. ОГРОМНОЕ СПАСИБО !!!!

<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="me@me.com">
<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>

Ответы [ 2 ]

0 голосов
/ 24 октября 2013

Чтобы использовать тег select, вы должны включить его в форму кнопки PayPal.Вы должны использовать теги on0 и os0.

Вы можете узнать больше об этом здесь: нажмите здесь

, и вы можете увидеть примеры здесь: нажмите здесь

ипример jsfiddle для вас прямо здесь

<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="me@me.com">
<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">

0 голосов
/ 15 октября 2011

Я думаю, что первая проблема с вашим HTML - JavaScript - HTML упорядочением. У вас есть эта строка в вашем JS ...

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

... Но элемент с идентификатором "finalpaypal" пока не существует. Можете ли вы переместить <script> вниз страницы после всего HTML-кода формы?

Вторая проблема также связана с этой строкой. Вы пытаетесь установить значение ввода для переменной, которая (насколько я могу судить) на самом деле не существует. Если вы хотите, чтобы значение было таким же, как для текстового поля, просто сделайте это:

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>
...