Javascript 使用google finance api单击复选框上的jQuery货币转换

Javascript 使用google finance api单击复选框上的jQuery货币转换,javascript,php,jquery,html,checkbox,Javascript,Php,Jquery,Html,Checkbox,我希望我的金额字段更新为总金额的转换值(金额是指选中所有复选框收到的金额之和)。例如,我有以下复选框 <input type="checkbox" value="10"> <input type="checkbox" value="20"> <input type="checkbox" value="30"> 这10、20和30(总计60)的价值单位为美元。我希望将其转换为INR,并显示在一个div中,比如说Rs.0.00。对于转换,我在这里使用Goog

我希望我的金额字段更新为总金额的转换值(金额是指选中所有复选框收到的金额之和)。例如,我有以下复选框

<input type="checkbox" value="10">
<input type="checkbox" value="20">
<input type="checkbox" value="30">

这10、20和30(总计60)的价值单位为美元。我希望将其转换为INR,并显示在一个div中,比如说
Rs.0.00
。对于转换,我在这里使用Google Finance API,如下所示

<?php
$from_Currency = "USD";
$to_Currency = "INR";
$encode_amount = 1;
$get = file_get_contents("https://www.google.com/finance/converter?a=$encode_amount&from=$from_Currency&to=$to_Currency");
$get = explode("<span class=bld>",$get);
$get = explode("</span>",$get[1]);
$converted_currency = preg_replace("/[^0-9\.]/", null, $get[0]);
echo $converted_currency;
?>


现在的问题是,我希望每次使用jquery选中或取消选中复选框时都更新div值。但是我在jQuery方面的能力很弱,所以我遇到了麻烦。如果能得到帮助,我将不胜感激。请帮帮我。

您需要ajax来完成此任务。我花了一段时间,但这是你的解决方案。试着理解它,如果你有任何问题,问一下。我没有做其他两个复选框被取消选中,一旦你勾选了需要的一个,但它并不难弄清楚。 这是我称之为test100.php的页面

<script type="text/javascript" language="javascript" src="jquery.min.js"></script>


<input type="checkbox" class="checkbox" value="10">
<input type="checkbox" class="checkbox" value="20">
<input type="checkbox" class="checkbox" value="30">


<?php
$from_Currency = "USD";
$to_Currency = "INR";
$encode_amount = 1;
$get = file_get_contents("https://www.google.com/finance/converter?a=$encode_amount&from=$from_Currency&to=$to_Currency");
$get = explode("<span class=bld>",$get);
$get = explode("</span>",$get[1]);
$converted_currency = preg_replace("/[^0-9\.]/", null, $get[0]);


echo "<div id='result'></br>$converted_currency</div>";
?>

<script type="text/javascript">
$(".checkbox").click(function() {

if($(this).is(":checked"))
{
var rez = $("#result");     
var checkbox_value = $( this ).val();

var dataString = 'checkbox_value=' + checkbox_value;

$.ajax({
type: "POST",
url: "calculation.php",
data: dataString, 
cache: false,

success: function(html)
{

 rez.empty().append(html);
 rez.fadeIn("slow")
 }
 });

 }
 });
 </script>


过了一段时间我把问题贴出来后,我想出了解决办法。在这里,我只是将转换后的值存储在一个变量
inr
中,并将其与从每个复选框接收到的合计值相乘,然后以inr显示合计值。现在,每次选中或取消选中复选框时,它都会分别更新值

享受下面的解决方案代码。太快了:D

$(document).ready(function(){
  $('input[type=checkbox]').change(function(){
    var total = 0; var inr = '<?php echo $converted_currency; ?>';
    $('input:checkbox:checked').each(function(){
      total += isNaN(parseInt($(this).val())) ? 0 : parseInt($(this).val());
    });
    $("#costdisplay").html(total);
    $("#inrdisplay").html(total*inr);
    $("input[name=ap_amount]").val(total);
    $("input[name=payment]").val(total);
    $("input[name=amount]").val(total*inr);
  });
});
$(文档).ready(函数(){
$('input[type=checkbox]')。更改(函数(){
var总计=0;var inr='';
$('input:checkbox:checked')。每个(函数(){
total+=isNaN(parseInt($(this.val())?0:parseInt($(this.val());
});
$(#costdisplay”).html(总计);
$(“#卢比显示”).html(总计*inr);
$(“输入[名称=应付款金额]”).val(总计);
$(“输入[名称=付款]”).val(总计);
$(“输入[名称=金额]”).val(总计*inr);
});
});

谢谢,但我已经想出了一个不使用AJAX的解决方案。。一个简单的jquery为我做到了这一点:Dalso。。您的代码需要时间处理(近2秒),但我的代码会在单击复选框后立即处理。关于“未选中”您提到的复选框,如果未选中复选框,您希望结果具有什么值?如果未选中一个复选框,则计算将基于先前单击的其他复选框。。如果全部取消选中,它将一个接一个地减少到0。。。
$(document).ready(function(){
  $('input[type=checkbox]').change(function(){
    var total = 0; var inr = '<?php echo $converted_currency; ?>';
    $('input:checkbox:checked').each(function(){
      total += isNaN(parseInt($(this).val())) ? 0 : parseInt($(this).val());
    });
    $("#costdisplay").html(total);
    $("#inrdisplay").html(total*inr);
    $("input[name=ap_amount]").val(total);
    $("input[name=payment]").val(total);
    $("input[name=amount]").val(total*inr);
  });
});