基本树枝,更新'模板

时间:2015-10-12 21:20:10

标签: php twig

我是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));
}

1 个答案:

答案 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>