【问题标题】:Variable from Javascript -> Php -> Smarty... is it possible?来自 Javascript -> Php -> Smarty 的变量...有可能吗?
【发布时间】:2011-07-13 00:43:20
【问题描述】:

例子:

<script type="text/javascript">
    insertVideos({
        'block':'youtubeDiv',
        'q':'keyword',
        'type':'search',
        'results':8,
        'order':'most_relevance',
        'player':'embed',
        'layout':'thumbnails'
    });
</script>

我需要将“结果”作为变量传递, 在流程结束时,我需要类似:{if $results != 0} 我该怎么做?

【问题讨论】:

  • 将 php 信息传递给 js :
  • JavaScript 在客户端执行。所以执行顺序是 PHP -> Smarty -> JavaScript。除非您想使用 Ajax 加载新内容并插入到页面中,否则这是不可能的。
  • 正是我需要知道该函数是否在搜索后检索到至少 1 个结果...实际上结果意味着 max_results。如何验证该功能? isset...空...像这样的东西?请帮忙

标签: php javascript variables smarty


【解决方案1】:

没有办法在您的 javascript 中访问 PHP/Smarty,因为它们在两个不同的世界中执行。

从服务器请求页面。服务器执行 PHP 并使用 Smarty 生成内容。服务器将生成的 HTML 和 javascript 源代码发送到客户端。服务器现在完成了。如果收到另一个请求,它会在不知道前一个请求的情况下重新开始。

客户端接收 HTML 和 javascript 源并显示。 insertVideos 方法最终会得到调用。此时,它与服务器和 PHP/Smarty 特性没有交互。

从那里,javascript 可以向服务器发出 ajax 请求,或者如果我假设您只想在搜索找到一些视频 (results &gt; 0) 时显示视频,您可以在 javascript 中进行检查并根据需要添加/修改 dom 元素。

【讨论】:

  • 好的,谢谢,如果没有找到,它已经不显示结果......问题是显示或不显示有关此行为的链接。现在我解决了将脚本包含到另一个选项卡而不是其分配的选项卡中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-14
  • 2010-09-23
相关资源
最近更新 更多