2016-05-17 15 views
0

我有這個代碼添加(sume)三個組合值,我想從smarty變量中獲得val「precioinicial」的結果(resultado)但我不知道該怎麼做。任何幫助?非常感謝你。添加一個Smarty變量和三個組合框的總和值

$(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

您不指定代碼是在.js文件中還是在由smarty處理的模板中。如果是第一種情況,你至少應該在一些地方的模板文件(可能是頭部)的聲明precioinicial,即

<html> 
    <head> 
    ... 
    <script> 
     var precioinicial = "{$productes_precio}"; 
    </script> 
    </head> 
    <body> 
    ... 

然後在你的腳本,你只需要使用的變量,並將其總結:

$('#form1').change(function() { 
      var obj = {}; 
      var string = ''; 
      var sum = parseFloat(precioinicial); 

如果其餘代碼是正確的,它應該按預期工作。

+0

是的,smarty變量被正確地告知。[編輯]你的解決方案工作正常。這是parseFloat非常非常感謝! –

0

您發佈的代碼是Javascript。就這樣它在客戶端上執行。然而,Smarty在服務器上執行。從你的問題,我會說你手頭有一個架構問題。

如果你真的想把價值傳遞給smarty,你必須通過Ajax來做到這一點(儘管這首先會引出你爲什麼要這麼做的問題,除非你想通過Smarty-生成的內容返回到您的Ajax響應中)。

+0

謝謝。聰明的價值不是問題。據報道是正確的。解決方案是parsefloat –

相關問題