首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Smarty fetch vs smarty display

Smarty fetch vs smarty display
EN

Stack Overflow用户
提问于 2010-12-17 02:01:00
回答 2查看 7.1K关注 0票数 1

我必须在主模板中显示一个小模板,以便根据ajax存储库显示小模板。我已经到了在ajax请求后获取参数的阶段。

代码语言:javascript
复制
$smarty=new Smarty(); 
if(isset($_SERVER['HTTP_X_REQUESTED_WITH'])
    &&$_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')
{
    // echo  "<pre>";
     //print_r("Yes");
     //echo "</pre>";
     echo $smarty->fetch('../templates/small-page.tpl');
} else {
     $smarty->display('../templates/index-page.tpl'); 
}

在这里,echo语句不起作用,我取消了对print_r函数的注释,我可以在firebug中看到,html包含"Yes“,但它没有显示在页面上。任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-17 06:47:00

如果smarty模板的输出是XML格式,则可以使用xmlhttp的responseXML属性,但前提是php输出正确的mime类型。

尝试:

代码语言:javascript
复制
header("content-type: text/xml");
echo $smarty->fetch('../templates/small-page.tpl');

然后在客户端,

代码语言:javascript
复制
alert(xmlhttp.responseXML);

告诉我它能不能用!

票数 2
EN

Stack Overflow用户

发布于 2010-12-17 06:05:10

我不认为Smarty和你的问题有关。Smarty会输出经过编译的模板的处理结果。

想象一下说“是”的结果。

在客户端,您有

代码语言:javascript
复制
xmlhttp.onreadystatechange=function() { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
        //Not sure how to diplay a smarty template as a result of responseText or responseXMl 
     } 
}

responseText将保持“是”。因此,例如,尝试:

代码语言:javascript
复制
xmlhttp.onreadystatechange=function() { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
        alert(xmlhttp.responseText);
     } 
}

如果这样做有效,你将不得不决定你想要对文本做什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4463889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档