我有一个聪明的项目: 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
我的快照:
我不确定是否在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);
}
浏览器中的结果:
几秒钟后,刷新页面后,该值将更改为已发送的值,这是否是由缓存引起的?