基本小枝'更新'模板


basic twig, 'updating' template

我是php新手,所以如果这些问题听起来很愚蠢,请不要生气;)

我在系树枝和纽扣。我想做的是:变量$num为1,在模板{{num}}中显示,如下所示:

1(变化值)

用户点击一个按钮(名为"change value")将1添加到$num(所以现在,$num是2)。模板现在应该更新并显示一个"2",如下所示:

2
(变化值)

用户再次点击,结果是3,以此类推…

在我的应用程序中发生的是:用户单击按钮,整个index.html被添加到第一个,所以现在它显示:


1(变化值)
2
(变化值)

而不是:

2
(变化值)

在此之后,如果用户再次点击按钮,什么也没有发生

如何"更新"模板中的变量?为什么我只能点击一次按钮?

这是我的html代码:
<html>
<body>
<p> {{ tempOne }} </p>
<form action="index.php" method="post">
  <input type="submit" name="submit" value="change value"/>
</form>
</body>
</html>

和我的php:

<?php
$twig = require_once('bootstrap.php');
$hostname = 'localhost';
$username = 'root';
$password =  '';
$conn = new PDO("mysql:host=$hostname;dbname=mydb", $username, $password);
$template = $twig->loadTemplate('index.html');
$num = 1;
echo $template->render(array('tempOne' => $num));
if(isset($_POST['submit'])){
    $num = $num + 1;
    echo $template->render(array('tempOne' => $num));
}

修改php代码如下:

<?php
$twig = require_once('bootstrap.php');
$hostname = 'localhost';
$username = 'root';
$password =  '';
$conn = new PDO("mysql:host=$hostname;dbname=mydb", $username, $password);
$template = $twig->loadTemplate('index.html');

if(isset($_POST['submit'])){
    $num = $_POST['num'] + 1;
    echo $template->render(array('tempOne' => $num));
} else {
    $num = 1;
    echo $template->render(array('tempOne' => $num));
}

和HTML到:

<form action="index.php" method="post">
  <input type="hidden" name="num" value="{{tempOne}}"/>
  <input type="submit" name="submit" value="change value"/>
</form>