为什么分配的数据没有立即更改为模板中的分配值?

时间:2018-07-20 06:56:43

标签: php smarty

我有一个聪明的项目: php文件是这样的:

<?php

require($_SERVER['DOCUMENT_ROOT'] . '/smartyHeader.php');

$smarty->assign('foo', 'Foo');

if( isset($_GET['username'])) {

    $username = $_GET['username'];
    $smarty->assign('bar', $username);
}


$smarty->display('php/test.tpl');

在其相应的模板中:

<form method="get" action="{$smarty.server.PHP_SELF}">
    <input type="text" name="username"/>
    <input type="submit">
</form>

{if isset($bar)}
    bar {$bar}
{/if}

您看到我使用表单提交了username

但是,似乎$smarty->assign('bar', $username);没有在php文件中执行。用户名字段在表单提交之前填写。


EDIT-01

我的快照:

enter image description here

我不确定是否在php文件中将发送用户名分配给了bar,但是12ewf是我上次设置的。这次用户名123提交后,模板不会立即更改。

Array是我在print_r $_GET中进行的测试:

if( isset($_GET['username'])) {

    print_r($_GET);
    ...

EDIT-02

看到这个:

if( isset($_GET['username'])) {

    print_r($_GET);

    echo $_GET['username'];

    $username = $_GET['username'];

    $smarty->assign('bar', $username);

}

浏览器中的结果:

enter image description here

几秒钟后,刷新页面后,该值将更改为已发送的值,这是否是由缓存引起的?

0 个答案:

没有答案