我是php和twig的新手,所以如果这些问题听起来很愚蠢,请不要感到沮丧;)
我把树枝和纽扣捆在一起。我想做的事: 变量$ num为1,并显示在模板{{num}}中,如下所示:
1
[更改价值]
用户单击一个按钮(名为"更改值")将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));
}
答案 0 :(得分:1)
将您的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>