2014-01-22 2 views
0

Массив $ данных, который присваивается Smarty шаблон выглядит следующим образом:Почему значения не печатаются в шаблоне smarty?

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? Пожалуйста, помогите мне в исправлении моей проблемы. Заранее спасибо.

+0

Похоже, у вас есть массив с более чем 1 элементом? – Nanne

+0

@Nanne: В приведенном выше случае – PHPLover

+0

, если данные представляют собой массив массивов, вы можете иметь этот массив как единственный элемент, но теперь это массив с несколькими элементами. возможно, вы хотели назначить этот массив '$ data []' или сделать '$ smarty-> assign ('data', array (data));' – Nanne

ответ

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); 
Смежные вопросы