2016-05-17 19 views
0

私は3つのコンボ値を加算するためにこのコードを用意しています。結果(resultado)でスマート変数から "precioinicial"しかし、私はそれを行う方法を知らない。どんな助け?どうもありがとうございました。3つのコンボボックス合計の合計値を持つ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で処理されたテンプレートにあるのかを指定しません。それは最初のケースだ場合、あなたは少なくとも、あなたはスクリプトであなただけ合計する変数を使用し、それを割り当てる必要があり、すなわち、テンプレートファイル(おそらくヘッド)のいくつかの場所で

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

をprecioinicial宣言する必要があります。

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

残りのコードが正しい場合は、正常に動作するはずです。

+0

はい、スマート変数は正しく通知されます。[編集]あなたのソリューションは正常に動作します。それはparseFloat非常に非常にありがとう!!!! –

0

あなたが投稿したコードはJavascriptです。したがって、クライアント上で実行されます。ただしSmartyはサーバー上で実行されます。あなたの質問から、私はあなたが手近な建築問題を持っていると言います。

実際に値をsmartyに渡したい場合は、Ajax経由で値を渡す必要があります(これは、最初にSmarty-あなたのAjaxレスポンスにコンテンツを生成します)。

+0

ありがとうございます。スマートな価値は問題ではありません。正しく報告されています。ソリューションは解析されました –

関連する問題