在Smarty模板中的jQuery语句中包含一个PHP文件



如果使用Smarty模板在jQuery中应用该条件,我希望包含一个文件我的代码:

{literal}
<script>
if (window.matchMedia('(max-width: 767px)').matches) {
// here is the include file
{include= file.tpl}
}
</script>
{/literal}

尝试:

{literal}
<script>
if (window.matchMedia('(max-width: 767px)').matches) {
{/literal}{include= file.tpl}{literal}
}
</script>
{/literal}

我有好消息也有坏消息。首先,坏消息是:这个代码永远不会起作用,因为你的Smarty模板已经在服务器上进行了评估,以便生成HTML并将其发送到浏览器,而你的Javascript代码只有在请求响应到浏览器后才会进行评估。因此,{include= file.tpl}将生成到HTML中,特别是生成到script标记中,从而产生不需要的结果。

好消息是这个问题是可以解决的。解决方案可以是

生成文本HTML并默认隐藏

在这种情况下,如果满足条件,您可以更改文字模板的displayCSS属性。

或者,当您需要文字时,您可以直接POST

如果JS条件为true,那么您可以向服务器发送AJAX帖子,服务器将使用模板进行回复。

最后,您可以使用媒体查询

如果这只是关于样式的,那么您可以使用[media querys][1]。

您还可以使用link标记的media属性来加载正确的样式表。[1] :https://www.w3schools.com/css/css_rwd_mediaqueries.asp

最新更新