繁体   English   中英

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

[英]Including a PHP file inside a jQuery statement within a Smarty template

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

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

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

好消息是这个问题是可以解决的。 解决办法可以是

生成您的文字 HTML 并默认隐藏它

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

或者,您可以在需要时为文字发布

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

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

如果这只是关于样式,那么您可以使用 [媒体查询] [1]。

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

尝试:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM