0

私は彼の仕事をうまくやるプラグインを持っています。追加のオプションが必要なだけです。フォームは合計金額をエコーし​​ます。ドロップダウン メニューの選択内容に応じて、合計金額に送料を追加する必要があります。以下はドロップダウンリストで、タグには、選択された製品に応じた合計価格が出力されます。誰かが助けてくれることを願っています。

<table>
<select name="shipper">
<option value="25">Netherlands</option>
<option value="49">Europe</option>
</select>

<td><strong>
  <?php 
    echo $this->output_currency(
      $totalPrice + $totalShipping + $shipper, 
      $currencySymbol, 
      $decimalPoint, 
      $thousandsSeperator) 
  ?></strong></td>
</table>

以下のすべての解決策を試しましたが、どれも機能しません。Tim のバージョンでは、totalprice と配送の選択が表示されますが、2 つが追加されていません。もう 1 つは NaN を返します。エコー コードは、さらに多くのコードを含むショッピング カート プラグインに属しているため、さらに多くのコードが必要になる場合があります。

4

4 に答える 4

0

Ajax Method with JQuery

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
        $(document).ready(function()
        {
            $.calTotal = function()
            {
                var shipper = $('#shipper').val();
                $.get('http://localhost/ajax/calTotal.php?shipper='+shipper, function(data) {
                    $('#cost').html(data);              
                });
            }

            $("#shipper").change($.calTotal);
            $.calTotal(); //Calling calTotal Method to get Amount for default shipper
        });
    </script>

    <table>
    <select id="shipper" name="shipper">
        <option value="25">Netherlands</option>
        <option value="49">Europe</option>
    </select>   

    <td><strong>
    <span id='cost'></span>
    </strong></td>
    </table>

PHP file (http://localhost/ajax/calTotal.php)

<?php 
    if(isset($_GET['shipper'])){
        $shipper_cost = $this->getShippingCost($_GET['shipper']);   
        echo $this->output_currency(
            $totalPrice + $totalShipping + $shipper_cost, 
            $currencySymbol, 
            $decimalPoint, 
            $thousandsSeperator
        );
    }else{
        echo 'Please select shipper';
    }
?>

you have to define getShippingCost() method to get shipper cost from database.

于 2012-12-09T14:13:15.107 に答える
0

そのために jQuery を使用することをお勧めします。「select[name=shipper]」が変更されるたびに、価格を更新してください。コストの目に見えない値があるかもしれませんが、送料は次のように jQuery で更新するだけです。

<script>
    $("select[name=shipper]").change(function() {
        var value=$(this).val();
        var cost = $("input[name=cost]").val();
        document.getElementById('cost').innerHTML = cost+value;
    }
</script>

<input type="hidden" name="cost" value="<?php your_cost(); ?>" />
<select name="shipper">
    <option value="25">Netherlands</option>
    <option value="49">Europe</option>
</select>

<td><strong id="cost"></strong></td>
于 2012-12-09T13:20:16.877 に答える
0

私が作った古いコードで遊んでみました。何が問題なのかわかりませんでしたが、今では全種類のスクリプトを投稿しました。「次のようにjquery-1.8.2 Javaライブラリを含める必要があることを忘れないでください:

<?
$totalPrice = '100';
$totalShipping = '100';
$currencySymbol = '100';
$decimalPoint = '100';
$thousandsSeperator = '100';
?>
<script type="text/javascript" src="inset the link til the jquery 1.8.2 javascript file here." ></script>
<script>
$(document).ready(function() {
    $('.calculate').change(function() {
        var total = 0;
        $('.calculate').each(function() {
            var value = $(this).val();
               if(value != 0) {
                 total += parseFloat(value);
            }
        });
        total = total + parseFloat(<?php echo $totalPrice; ?>);
        total = total + parseFloat(<?php echo $totalShipping; ?>);
        total = total + parseFloat(<?php echo $currencySymbol; ?>);
        total = total + parseFloat(<?php echo $decimalPoint; ?>);
        total = total + parseFloat(<?php echo $thousandsSeperator; ?>);
        $('#total').text('' + total.toFixed(0));
    });
});
</script>

<select class="calculate" name="shipper">
<option value="25">Netherlands</option>
<option value="49">Europe</option>
</select>
<br>
<span id="total"></span>

ファイルの先頭で文字列のデータを自分で決めることができます。しかし、これは testet であり、php5 と apache の最新の更新を備えた apache サーバーで作業しています。

于 2012-12-09T15:52:19.360 に答える
0
<table>
   <select name="shipper">
      <option value="25" data-cost="1.99">Netherlands</option>
      <option value="49" data-cost="5.99">Europe</option>
   </select>

// ここに jquery ライブラリをインクルード

<script>
   var totalPrice = '<?php echo $totalPrice; ?>';
   var totalShipping = '<?php echo $totalShipping; ?>';
   var shipper = '<?php echo $shipper; ?>';
   var currencySymbol = '<?php echo $currencySymbol; ?>';  
   var decimalPoint = '<?php echo $decimalPoint; ?>';
   var thousandsSeperator = '<?php echo $thousandsSeperator; ?>';

   $(function(){
      $('select[name=shipper]').change(function(){
         var shipping_append = $(this).children('option:selected').data('cost');
         totalShipping += shipping_append;
         var text_string = ((totalPrice*1) + (totalShipping*1))
                           + ' ' + shipper + ' ' + currencySymbol + decimalPoint + thousandsSeperator.

         $('#output').text(text_string);
      });
   });
</script>

<td id="output"><strong>
  <?php 
    echo $this->output_currency(
      $totalPrice + $totalShipping + $shipper, 
      $currencySymbol, 
      $decimalPoint, 
      $thousandsSeperator) 
  ?></strong></td>
</table>
于 2012-12-09T13:37:53.780 に答える