PHP将下拉输入计算为总计

PHP将下拉输入计算为总计,php,drop-down-menu,echo,Php,Drop Down Menu,Echo,我有一个插件,很好地完成了他的工作。我只需要一个额外的选择。 该表格反映了总价。我需要根据下拉菜单中的选项将运费添加到总价中。 下面是下拉列表,标签中是总价的输出,具体取决于所选的产品。 我希望有人能帮忙 <table> <select name="shipper"> <option value="25">Netherlands</option> <option value="49">Europe</option> <

我有一个插件,很好地完成了他的工作。我只需要一个额外的选择。 该表格反映了总价。我需要根据下拉菜单中的选项将运费添加到总价中。 下面是下拉列表,标签中是总价的输出,具体取决于所选的产品。 我希望有人能帮忙

<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版本显示了总价和装运选项,但没有添加这两个选项。另一个给了安楠。也许您需要更多的代码,因为echo代码属于一个购物车插件,它包含更多的代码。

您可能需要使用jQuery来实现这一点-每次选择[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>
//在这里包括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>

使用JQuery的Ajax方法

<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文件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';
    }
?>

您必须定义getShippingCost方法才能从数据库中获取发货人成本。

我尝试过使用我编写的旧代码。也找不到有什么问题,但我现在已经发布了一个完整的脚本类型。请记住,必须包含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服务器上工作。

要做到这一点,您可以在选择和检索价格上设置ajax cal。您可能需要查看JavaScript.var value=$this.val;不应该工作,因为您需要获取所选选项的val,而不是选择框本身。嗨,Coookkiee,我尝试过此解决方案,但结果为NaN。我将对其运行测试并查看结果。我会为你评论结果。我做了一些改变,没有什么特别的,但再次阅读我的整个帖子,我已经写下了你必须做的事情。嗨,蒂姆·乔伊斯,我尝试过使用你的代码,但它没有将发货选项添加到总价格中。它不会将价格附加到你拥有的任何php代码中,因为这是一个javascript代码。您需要将输出发送回服务器端页面进行处理。谢谢Tim,有什么想法吗?
<?
$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>