1

こんにちは、オプションから選択されたものに基づいて価格を変更しようとしています... ajaxでJavaScriptを使用してそれを行うかどうかわかりません.どうすればそれを行うことができますか...

<tr>
<td width="160">Price:</td>
<td name="price"><?php echo $row['Standard_price']; ?></td>
</tr>

価格は商品の標準価格としてデータベースから選択され、誰かが以下のオプションから選択したときに (データベースではなく) 変更したい

<tr>
td for="length" width="160">size*:</td>
<td>
<select name="size" class="small">
<option value="£25.00">12 size</option>
<option value="£30.00">14 size(+£30.00)</option>
<option value="£40.00">18 size(+£40.00)</option>
<option value="£45.00">20 size(+£45.00)</option>
<option value="£80.00">28 size(+£80.00)</option
</select>

私は 40 ポンドの 18 インチを選択しました。価格を 40 ポンドに変更したいのですが、ech0 の場合も同様です。

$length = $_POST['length'];

£40.00 ではなく、18 インチ (+£40.00) と表示されます。

私のカートにあるので

product name: blue nike shoes
size: 18 inch (+£40.00)
Unit price: £40.00
qty:1
total price: £40.00

オプションの中からお選びいただく内容により、単価とサイズが変わります。助けてください。私は他のすべてを機能させていますが、オプションに応じて価格を変更し、オプションから選択したサイズを取得するだけです.

それでも誰も私を理解していない場合...販売しているサイトから靴を購入して、サイズを選択してみてください.価格はすべてのサイズで同じですが、カートには選択したいことが示されています. 私の場合、サイズによって価格が異なります。選択したサイズとそのサイズの価格をカートに表示したいと思います。

私のやり方が間違っているのかもしれませんが、長さや形、価格が異なる商品を販売しているサイトで見たことがあるので、それが可能であることはわかっています。

4

2 に答える 2

2

編集

追加フィールドのあるバージョン: JSFiddle

元のフィールドを持つバージョン: JSFiddle


追加のフィールドで

アイテムのサイズのみを表示する行を追加しました。

HTML アドオン

<tr>
  <td width="160">Item:</td>
  <td id="item">12 inch</td>
</tr>

Javascript

function addCharge(select, elemIndex)
{
  var item = select.getElementsByTagName('option')[elemIndex];
  var price = document.getElementById('pricetag');
  var finalPrice = "";

  /* Getting the price and showing it up */
  finalPrice = parseFloat(item.text.substring(11, item.text.length-1));

  /* We set a default £25.00 value */
  if(isNaN(finalPrice)) finalPrice = "25";

  /* we add decimal */
  price.innerHTML="£"+finalPrice+".00";

  /* Getting the size and showing it up */
  var size = item.text.substring(0,7);
  var sizeDOM = document.getElementById('item');
  sizeDOM.innerHTML = size;
}

オリジナルフィールドで

Javascript

function addCharge(select, elemIndex)
{
  var item = select.getElementsByTagName('option')[elemIndex];
  var price = document.getElementById('pricetag');
  var finalPrice = "";

  /* Getting the price and showing it up */
  finalPrice = parseFloat(item.text.substring(11, item.text.length-1));

  /* We set a default £25.00 value */
  if(isNaN(finalPrice)) finalPrice = "25";

  /* we add decimal */
  price.innerHTML="£"+finalPrice+".00";

  /* Getting the size and showing it up */
  var size = " ("+item.text.substring(0,7)+")";
  price.innerHTML += size;

}


New : 入力フィールドあり

新しい HTML

<input type="hidden" id="itemPrice" name="itemPrice"/>
<input type="hidden" id="itemLength" name="itemLength"/>

新しい JavaScript

var itemPriceDOM = document.getElementById('itemPrice');
var itemLengthDOM = document.getElementById('itemLength');

/* we add decimal */
itemPriceDOM.value = finalPrice;

/* Getting the size and showing it up */
var size = item.text.substring(0,7);
itemLengthDOM.value = size;
price.innerHTML += " ("+size+")";

新しいJSFiddleを参照してください。

于 2013-05-30T20:17:25.747 に答える
0

次のようなものを実装する必要があります。

<tr>
   <td width="160">Price:</td>
   <td id="priceContainer"><?php echo $row['Standard_price']; ?></td>
</tr>

<select name="title" id="priceDropDown" class="small">
  <option<?php fillSelect('size','','',true); ?> DISABLED value="">Select size</option>
  <option<?php fillSelect('size','12'); ?> value="25">12 size(+£25.00)</option>
  <option<?php fillSelect('size','14'); ?> value="25">14 size(+£30.00)</option>

</select>

<script type="text/javascript">
$(function() {
   $('#priceDropDown').on('change', function() {
          //$('#priceContainer').text($(this).val());
          $('#priceContainer').text($(this).find('option:selected').text());
   });
});
</script>

この例では、jQuery を使用しています。

于 2013-05-30T16:55:15.950 に答える