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>