添加一个 Smarty 变量,其总值为三个组合框的总和
Adding a Smarty variable with total value of the sum of three combo box
我有这段代码用于添加(汇总)三个组合值,我想从 smarty 变量中汇总 val "precioinicial" 和结果 (resultado) 但我不知道该怎么做.有什么帮助吗?非常感谢。
$(document).ready(function(e) {
$('#form1').change(function() {
var obj = {};
var string = '';
var precioinicial = "{$productes_precio}";
var sum = 0;
// Grupo 1
if ($("select option[name=embroider]").is(':checked')) {
var n1 = $("select option[name=embroider]:checked").val();
sum += parseFloat(n1);
}
// Grupo 2
if ($("select option[name=sole]").is(':checked')) {
var n1 = $("select option[name=sole]:checked").val();
sum += parseFloat(n1);
}
// Grupo 3
if ($("select option[name=taps]").is(':checked')) {
var n1 = $("select option[name=taps]:checked").val();
sum += parseFloat(n1);
}
$('#resultado').val(sum);
});
});
您发布的代码是Javascript。因此它在客户端上执行。然而,Smarty 是在服务器上执行的。根据您的问题,我会说您手头有架构问题。
如果你真的想将值传递给 smarty,你必须通过 Ajax 来完成(尽管这会引出你为什么首先要这样做的问题,除非你想要在您的 Ajax 响应中传回 Smarty 生成的内容)。
您没有指定代码是在 .js 文件中还是在由 smarty 处理的模板中。如果是第一种情况,你至少应该在模板文件的某个地方(可能是头部)声明precioinicial,即
<html>
<head>
...
<script>
var precioinicial = "{$productes_precio}";
</script>
</head>
<body>
...
然后在您的脚本中,您只需使用该变量并将其分配给 sum:
$('#form1').change(function() {
var obj = {};
var string = '';
var sum = parseFloat(precioinicial);
如果您的其余代码正确,它应该会按预期工作。
我有这段代码用于添加(汇总)三个组合值,我想从 smarty 变量中汇总 val "precioinicial" 和结果 (resultado) 但我不知道该怎么做.有什么帮助吗?非常感谢。
$(document).ready(function(e) {
$('#form1').change(function() {
var obj = {};
var string = '';
var precioinicial = "{$productes_precio}";
var sum = 0;
// Grupo 1
if ($("select option[name=embroider]").is(':checked')) {
var n1 = $("select option[name=embroider]:checked").val();
sum += parseFloat(n1);
}
// Grupo 2
if ($("select option[name=sole]").is(':checked')) {
var n1 = $("select option[name=sole]:checked").val();
sum += parseFloat(n1);
}
// Grupo 3
if ($("select option[name=taps]").is(':checked')) {
var n1 = $("select option[name=taps]:checked").val();
sum += parseFloat(n1);
}
$('#resultado').val(sum);
});
});
您发布的代码是Javascript。因此它在客户端上执行。然而,Smarty 是在服务器上执行的。根据您的问题,我会说您手头有架构问题。
如果你真的想将值传递给 smarty,你必须通过 Ajax 来完成(尽管这会引出你为什么首先要这样做的问题,除非你想要在您的 Ajax 响应中传回 Smarty 生成的内容)。
您没有指定代码是在 .js 文件中还是在由 smarty 处理的模板中。如果是第一种情况,你至少应该在模板文件的某个地方(可能是头部)声明precioinicial,即
<html>
<head>
...
<script>
var precioinicial = "{$productes_precio}";
</script>
</head>
<body>
...
然后在您的脚本中,您只需使用该变量并将其分配给 sum:
$('#form1').change(function() {
var obj = {};
var string = '';
var sum = parseFloat(precioinicial);
如果您的其余代码正确,它应该会按预期工作。