2013-10-29 52 views
0

關於smarty if語句的問題。

我已經創建了一個計數器,我需要if語句中計數器的值。 計數器看起來是這樣的:

{assign var="counter" value=1} 

它看起來像這樣:

{if $task.check_counter == "on"} checked {/if} 

它必須看起來像:

{if $task.check_1 == "on"} checked {/if} 

這可能嗎?

UPDATE:代碼 部分:

{assign var="counter" value=1}        
    {foreach from=$service item=sert} 
     {if $sert.parent_id == $task.task_id} 
      <tr> 
       <td>{$sert.name}</td> 
       <td>{$address_detail.start}</td> 
       <td style="text-align: center;"> 
        <div> 
         <input type="checkbox" 
           class="icheck" name="c_{$counter}" 
           id="icheck_{$counter}" 
           {if $task.check_$counter == "on"} checked {/if} > 
        </div> 
       </td> 
      </tr> 
      {assign var="counter" value=$counter + 1} 
     {/if} 
    {/foreach} 
+0

'{if $ task.check _ {$ counter} ==「on」}'你有沒有試過讓它工作?如果你有 - 添加你所嘗試的,所以人們不建議明顯的東西... – naththedeveloper

回答

2

99次滿分100,您使用的是「可變的變量」,你實際上應該定義的數組。

如果不是動態命名你的項目爲check_1check_2,等等,你定義的項目的數組稱爲check_list,你可能只是這樣做:{$task.check_list.$counter}

請注意,你甚至可以用表單域做到這一點,因爲PHP在處理表單提交時會將<input name="task[check][1]" />等字段轉換爲適當的數組。

這就是說,因爲這種特殊的情況下,實際上不是一個變量名,但$task陣列內的數組鍵,就可以定義整個鍵作爲一個動態字符串,並查找使用:

{assign var=array_key value='check_'|cat:$counter} 
{if $task.$array_key == "on"} 
+0

謝謝!完美的作品! – Bvweijen

0

你可以試試這個;

指定你的smarty變量,如;

$smarty->assign('counter', 1); 

那就試試這個

{if $task.check_$smarty->get_template_vars('counter') == "on"} checked {/if} 
+0

感謝您的回答!已經嘗試過,但它返回一個空白頁。 – Bvweijen

+0

編輯答案。請chk – BKM

+0

同樣的結果。空白頁! :( – Bvweijen