我收到的错误是" SmartyException'消息'缺少模板名称..."。 我喜欢在Smarty中使用display()显示不同的页面。我从网址获取值并将页面分开。 我尝试连接单引号,但它并没有真正起作用。 任何帮助欣赏。 index.html,confirm.html,finish.html存在于模板目录的联系人文件夹中。
switch($_GET['param']) {
case 1: confirmation();
break;
case 2: send_email();
break;
case 3: finish();
break;
}
function confirmation(){
echo 'index page';
//$smarty->assign('css', "contact");
//$smarty->display('contact/index.html');
$url = '\'contact/index.html\'';
}
function send_email(){
echo 'confirmation page';
//$smarty->assign('css', "contact");
//$smarty->display('contact/confirm.html');
$url = '\'contact/confirm.html\'';
}
function finish(){
echo 'finish page';
//$smarty->assign('css', "contact");
//$smarty->display('contact/finish.html');
$url = '\'contact/finish.html\'';
}
//
$smarty->assign('css', "contact");
//$smarty->display('contact/index.html');
$smarty->display($url);
答案 0 :(得分:0)
这是因为你在每个函数中使$url
成为局部变量。您应该创建全局变量并在每个函数中返回$url
,如下面的代码所示:
$url = '';
switch($_GET['param']) {
case 1:
$url = confirmation();
break;
case 2:
$url = send_email();
break;
case 3:
$url = finish();
break;
}
function confirmation(){
echo 'index page';
//$smarty->assign('css', "contact");
//$smarty->display('contact/index.html');
$url = 'contact/index.html';
return $url;
}
function send_email(){
echo 'confirmation page';
//$smarty->assign('css', "contact");
//$smarty->display('contact/confirm.html');
$url = 'contact/confirm.html';
return $url;
}
function finish(){
echo 'finish page';
//$smarty->assign('css', "contact");
//$smarty->display('contact/finish.html');
$url = 'contact/finish.html';
return $url;
}
//
$smarty->assign('css', "contact");
//$smarty->display('contact/index.html');
$smarty->display($url);
顺便说一句,我在每个函数中也删除了$url
中的单引号,因为它们似乎根本不需要。