表单提交后动态更新Smarty模板

时间:2014-08-28 11:56:24

标签: php smarty

我一直在试验Smarty模板引擎。我已经能够设置Smarty并分配变量,但是我有一个关于在表单sumbit之后更新模板的问题。我当前的模板(index.tpl)如下:

<html>
  <head>
    <link rel="stylesheet" type="text/css" href="Styles.css">
    <title>Smarty</title>
  </head>
  <body>

<div class="body">  

    <form action='index.php' method='post'>

        <br>    
        <center>Hello, please enter your name: <input type=text name=name class=nameTextField></center>
        <br>

        <center><input type=submit value="Submit Name" name=submitName class=nameButton></center>

    </form>

    <center>
    <div class="nameDisplay">

        {if isset($name)}

            <h1>Hello, {$name}</h1>

        {/if}    

    </div>
    </center>

</div>

  </body>
</html>

PHP文件(index.php)在表单提交期间运行以下代码:

<?php

if(isset($_POST['submitName'])){

    global $smarty; // previously declared

    $name = $_POST['name'];

        $smarty->assign('name', $name);
        $smarty->display('index.tpl');

}

?>

这个想法是模板中的“Hello”消息仅在提交表单后出现,因为在此之前,$ name Smarty变量未设置。

但是,运行$ smarty-&gt; display('index.tpl')时实际发生的情况是,在“Hello”消息之上,表单的上半部分也会打印出来,所以现在有了同一页面上的两个表格。

有什么想法可以解决这个问题吗?谢谢。

0 个答案:

没有答案
相关问题