2013-04-06 4 views
2

Я пытаюсь добавить форму веб-контакта на сайт, который использует шаблоны Smarty PHP.Как интегрировать форму PHP с Smarty?

Моя первоначальная попытка (ниже) создает пустую веб-страницу.

.TPL файл

{debug} 
{extends file='toxtweet.tpl'} 
{block name=body} 
    <form action="" method="post"> 
    {foreach from=$formitems as key=name item=value} 
     <label for={$name}>{$value}</label> 
     <input type="text" name={$name} size="50"/> 
    {/foreach} 
    <input type="submit" value="E-mail" /> 
    </form> 
{/block} 

.php файл

<?php 
    include 'base.php'; 
    include './scripts/recaptchalib.php'; 
    $formitems = parse_ini_file("formitems.ini"); 
    $smarty -> assign('formitems',$formitems); 
    $smarty -> display("contact.tpl"); 
?> 

base.php и toxtweet.tpl прекрасно работают во всех других страниц, так что я не думаю, что они являются проблемой. recaptchalib.php имеет правильный путь.

При удалении линий {foreach} ... {/foreach} пустая веб-страница отображается правильно. Ошибка сохраняется, если я использую формат {foreach $x as $y} или {foreach from=$x key=k value=v}.

Отладка показывает, что файл ini со значениями для formitems был правильно загружен.

+0

Вы писали в своем коде '{/ foreach}' или '{\ foreach}'? – bwoebi

+0

@bwoebi {/ foreach}, извините за опечатку. Исправлено в OP. – mac389

+0

Значение $ должно быть обернуто в {} –

ответ

1

Удалите «как» из вашего foreach, и он должен работать.

Смежные вопросы