我是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>