我对聪明的全新......并且它让我爬出来了:))
我在/inc/class/search.php中得到了以下类:
Class search
{
function __construct($request) {
global $dbconn;
$request = htmlspecialchars($request);
$sql = "SELECT * FROM table WHERE id LIKE '%{$request}%'";
$res = $dbconn->Query($sql);
$entity = $res->fetchArray();
return $entity;
}
}
我在php_head.php中有这个:
if (isset($_REQUEST['search']) && !empty($_REQUEST['search'])) {
$is = new search($_REQUEST['search']);
$smarty->assign("searchValues", $is);
}
php_head中的此代码旨在稍后由ajax调用。但是当我运行index.php?search = string时,我得到了整个聪明的模板。请帮忙。
答案 0 :(得分:1)
当您在网址中搜索时,您需要做的只是显示部分输出。
所以你可以这样修改你的代码:
if (isset($_REQUEST['search']) && !empty($_REQUEST['search'])) {
$is = new search($_REQUEST['search']);
$smarty->assign("searchValues", $is);
$smarty->display('searchvalues.tpl'); // custom base template
exit; // stop execution of later code
}
您应该创建searchvalues.tpl
模板并在此处仅显示您要显示的此部分,而不是整个基本模板。
答案 1 :(得分:0)
您需要清除ajax所需的模板,以及是否要将其包含在其他模板中
{include file="path_to_template.tpl"}
当您只需要使用此模板的结果时
echo $smarty->fetch('path_to_template.tpl');
例如,你有:
$smarty->display('index.tpl');// this will return index.tpl
在index.tpl中:
<div id="result_ajax">
{include file="ajax_template.tpl"}
</div>
在ajax.php中:
//Do some stuff
echo $smarty->fetch('ajax_template.tpl');