【发布时间】:2014-01-22 11:12:44
【问题描述】:
分配给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} </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 个元素的数组?
-
@Nanne:在上面的情况下
-
如果 data 是一个数组数组,你可以将这个数组作为单个元素,但现在它是一个包含多个元素的数组。也许您打算将该数组分配给
$data[],或者执行$smarty->assign('data', array(data));