我有这个代码用于添加(sume up)三个组合值,我想从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);
});
});
答案 0 :(得分:0)
您发布的代码是Javascript。因此它在客户端上执行。然而,Smarty在服务器上执行。从你的问题我会说你手头有一个架构问题。
如果你真的想把这个值传递给smarty,你必须通过Ajax来做(虽然这会引起你为什么这样做的问题,除非你想传递Smarty生成的回到你的Ajax响应中。)
答案 1 :(得分:0)
您不指定代码是在.js文件中还是由smarty处理的模板中。如果这是第一种情况,你至少应该在模板文件的某个地方(可能是头部)声明预先确定的,即
<html>
<head>
...
<script>
var precioinicial = "{$productes_precio}";
</script>
</head>
<body>
...
然后在你的脚本中你只需要使用变量并将其分配给sum:
$('#form1').change(function() {
var obj = {};
var string = '';
var sum = parseFloat(precioinicial);
如果其余代码正确,则应该按预期工作。