2

以下は、smartyテンプレートのコードスニペットです。実際には連想配列があり、smartyテンプレートでその値を示しています。連想配列のそのような要素の1つは、content(value)にタグが$ans.answer_text存在するかどうかを確認する必要があります。タグが存在する場合は、ロジックを実行する必要があり、存在しない場合は実行する必要があります。他のロジック。しかし、私が直面している主な問題は、配列要素データ内のタグの存在を確認する方法です。この問題を解決するために私を助けてください。前もって感謝します。<img><img><img>

<tr valign="top">
    {foreach from=$qstn_ans.answer item=ans key=ans_no}
         <td valign="top" valign="top">
         {if $ans.answer_is_right==1}{assign var='correct_ans' value=$ans_no+1}{/if}
         <b>{$ans_no+1}.</b>&nbsp;&nbsp;
         {if $ans.answer_text!=''}{$ans.answer_text}{/if}
         <br />
         {if $ans.answer_file!=''}<img src="{$ans_thumb_img_path}{$ans.answer_id}_{$ans.answer_file}" />{/if}
         </td>
    {/foreach}
</tr>
4

2 に答える 2

1

この種の使用法は、テンプル エンジンを使用する目的を無効にします。理想的には、コントローラーでこれらのチェックを行う必要があります。

私は次のようにします:

$qstn_ans = array();
// PHP Controller
foreach ($qstn_ans as $key => $value) {
    $imgPath = ''; // generate the name here
    $qstn_ans[$key]['hasImage'] = (file_exists($imgPath))?1:0;
}

// Template file
{if $ans.hasImage}<img src="<!-- insert image here -->" />{/if}
于 2013-01-28T12:39:17.150 に答える
0

{html_image}を使用してみましたか?

http://www.smarty.net/docsv2/en/language.function.html.image.tpl

于 2013-01-28T12:34:19.160 に答える