为什么值不会在smarty模板中打印出来?

时间:2014-01-22 11:12:45

标签: php foreach smarty

分配给smarty模板的数组$ data如下:

Array
(
    [pt_id] => 2
    [pt_doc_title] => Happy New Year
    [pt_doc_id] => 
    [delete_flag] => 
    [pt_doc_file_iname] => array.txt
)

要将它分配给smarty模板,我使用了以下代码行:

$smarty->assign('data', $data);

现在这个数组目前只包含一个元素,但是这个数组中可能会有更多这样的元素,因为数组将动态生成。因此,为了访问我在代码中编写的值,但我没有在那里获得更多值。

{foreach from=$data item=titles key=key}
            <li id="ttl{$key+1}" class="ans_li">
              <span class="num-block">{$key+1}&nbsp;&nbsp;&nbsp;</span>
              <label>{'Document Title'|signal_on_error:$error_msg:'correct_ans'} <span class="reqd"> * </span></label>
              <input type="text" name="pt_doc_title[{$key+1}]" id="pt_doc_title_{$key+1}" value="{$titles.pt_doc_title}">
              <p class="uploadBtn"><input type="file" name="document_file_name_{$key+1}" id="document_file_name_{$key+1}">
              </p>
              {if $titles.pt_doc_file_iname!= ""}
                <a href="package_type_documents.php?op=download&pt_id={$titles.pt_id}&pt_doc_id={$titles.pt_doc_id}" style="font-size:small;">{$titles.pt_doc_file_iname}</a>

                <input type="checkbox" name="delete_file_{$key+1}" id="delete_file_{$key+1}" class="custom-check" />
                <label for="show">Delete file</label>                
              {else}                             
                <p class="custom-form">
                <a href="#" id="ttl{$key+1}" onclick="delete_title(this.id);return false;" class="c-delete">Delete</a>
                </p>                
              {/if}
              <input type="hidden" name="pt_doc_id[{$key}]" value="{$titles.pt_doc_id}">
              {if $titles.pt_doc_file_iname!=''}
              <input type="hidden" name="pt_doc_file_iname[{$key}]" value="{$titles.pt_doc_file_iname}">  
              {/if}
            </li>
            {/foreach}

所以我在smarty中访问上面的数组时犯了什么错误?请帮我纠正我的问题。提前谢谢。

1 个答案:

答案 0 :(得分:1)

尝试为您的阵列使用multidimensional array

像这样。

   $data = array
    (
        0 => array(
            'pt_id' => 2,
            'pt_doc_title' => 'Happy New Year',
            'pt_doc_id' => ,
            'delete_flag' => ,
            'pt_doc_file_iname' => 'array.txt'
         )
         1 => array(
            'pt_id' => 3,
            'pt_doc_title' => 'Some other title',
            'pt_doc_id' => ,
            'delete_flag' => ,
            'pt_doc_file_iname' => 'array2.txt'
         )

    )

$smarty->assign('data', $data);