分配给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中访问上面的数组时犯了什么错误?请帮我纠正我的问题。提前谢谢。
答案 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);