2015-01-19 7 views
1

Я хочу сделать переменную в smarty tpl, используя раздел. Я назначил переменную в классе с циклом for. Мой код:сделать переменную в smarty tpl, используя раздел

for($i=1;$i<=$_REQUEST['parcel_quantity'];$i++)      
{      
    ${"grith_".$i}=$_REQUEST['parcel_grith_'.$i]; 
    ${"width_".$i}=$_REQUEST['parcel_width_'.$i]; 
    ${"height_".$i}=$_REQUEST['parcel_height_'.$i]; 
    ${"weight_".$i}=$_REQUEST['parcel_weight_'.$i]; 
    ${"volumetric_weight".$i}=(${"grith_".$i}*${"width".$i}*${"height_".$i})/4000; 
    $objSmarty->assign("volumetric_weight".$i,${"volumetric_weight".$i}); 
    $objSmarty->assign("select_l".$i,${"grith_".$i}); 
    $objSmarty->assign("select_w".$i,${"width_".$i});     
    $objSmarty->assign("select_h".$i,${"height_".$i});     
    $objSmarty->assign("select_weight".$i,${"weight_".$i}); 
} 

теперь я хочу использовать эти присвоенные значения в TPL:

{section name=data start=0 loop=$parcel_quantity}` 
    <li><a ><strong>Dimentions :-</strong>&nbsp;{$select_h}{$smarty.section.data.index+1}{$unit}&nbsp;X&nbsp;{$select_w}{$smarty.section.data.index+1}{$unit}&nbsp;X&nbsp;{$select_l}{$unit}</a></li> 
    <li><a ><strong>Volumetric Weight :-</strong>&nbsp;{$volumetric_weight}{$smarty.section.data.index+1}Kg</a></li> 
{/section} 

ответ

0

Наконец-то я получил его, используя другой метод. Я помещаю все значения в переменную и назначаю ее и использую как переменную smarty в tpl.

for($i=1;$i<=$_REQUEST['parcel_quantity'];$i++) 
          { 
          ${"grith_".$i}=$_REQUEST['parcel_girth_'.$i]; 
          ${"width_".$i}=$_REQUEST['parcel_width_'.$i]; 
          ${"height_".$i}=$_REQUEST['parcel_height_'.$i]; 
          ${"weight_".$i}=$_REQUEST['parcel_weight_'.$i]; 
          ${"volumetric_weight".$i}= ($_REQUEST['parcel_girth_'.$i]*$_REQUEST['parcel_width_'.$i]*$_REQUEST['parcel_height_'.$i])/4000 ; 

          if(${"weight_".$i}>${"volumetric_weight".$i}) 
         ${"weight_main_".$i}=${"weight_".$i}; 
         else 
         ${"weight_main_".$i}=${"volumetric_weight".$i}; 

         $total_weight+= ${"weight_main_".$i}; 



          // Put all values in variable with design 
          $veiw_in_right.=' 
          <li><strong>Parcel Detail:'.$i.'</strong></li><li><a ><strong>Dimentions :-</strong>&nbsp;'.${"height_".$i}.$unit.'&nbsp;X&nbsp;'.${"width_".$i}.$unit.'&nbsp;X&nbsp;'.${"grith_".$i}.$unit.'</a></li> 
       <li><a ><strong>Volumetric Weight :-</strong>&nbsp;'.${"volumetric_weight".$i}.'Kg</a></li> 
       <li><a ><strong>Weight:-</strong>&nbsp;'.${"weight_".$i}.'Kg</a><hr></li>'; 

     $objSmarty->assign("veiw_in_right",$veiw_in_right); 

         } 

в TPL просто поставить переменную:

<li><a ><strong>No of Pieces :-</strong>&nbsp;{$parcel_quantity}</a><hr /></li> 
     {$veiw_in_right} 
    <li><a ><strong>Total Weight :-</strong>&nbsp;{$total_weight}Kg</a></li> 
0

попробовать, как это будет работать:

TPL:

{section name=data start=0 loop=$parcel_quantity} 
    {$parcel_quantity[data].value} 
{/section} 

здесь, {$parcel_quantity[data].value} - это значение, полученное из раздела. вы должны заменить field name на value.

Смежные вопросы