【问题标题】:php explode not working in javascript templatephp爆炸在javascript模板中不起作用
【发布时间】:2012-08-30 09:03:23
【问题描述】:

我知道一些帖子已经在处理相同的主题。

以下是链接:

Javascript Template Engine Use with jQuery

What is x-tmpl?

我正在尝试将 php explode 函数合并到 javascript 模板中。该插件是 jQuery-File-Upload from blueimp @ https://github.com/blueimp/jQuery-File-Upload/downloads 我从 GitHub 下载的。

以下是我正在尝试执行并使其工作的代码的一部分。

         <!-- The template to display files available for download -->
         <script id="template-download" type="text/x-tmpl">
         {% for (var i=0, file; file=o.files[i]; i++) { %}
             <tr>
                <td>
                     <?php echo "{%=file.name%}"; ?> //{%file.name%} contains a string seperated by underscores
                     <?php $file_name_long = '{%=file.name%}'; ?>
                     <?php $file_name = explode ('_' , $file_name_long); ?>
                     <?php print_r($file_name); ?>
                </td>
             </tr>
               ...
               ...

我可以将 $file_name 作为一个数组打印出来,但我无法在我的 file.name 中用下划线分隔它。打印的数组包含根据 file.name 的整个字符串。

我不确定这是否可能。我整天都在努力。如果这不可行或逻辑上不正确,请告诉我,这样我就可以停止尝试使这项工作。感谢和赞赏。

【问题讨论】:

  • 能否提供当前生成的输出?
  • 我得到了这个--> vendor_unknown_Pearls.gif 数组 ( [0] => vendor_unknown_Pearls.gif )

标签: php javascript jquery json template-engine


【解决方案1】:

您正在尝试读取 php 代码中的 javascript 值。

{%=file.name%} 只是 php 的一个字符串,并且在您的 php 呈现输出时不包含实际的文件名。所以你的 print_r() 会输出{%=file.name%} 然后在整个php处理完成后在浏览器中翻译成你的文件名。

尝试仅在 javascript 中实现这些东西。

【讨论】:

  • 意思是用javascript做explode?​​span>
  • 是的。但是您必须弄清楚如何在模板文件中运行 javascript。 javascript 等价于explode() 是split()
  • 嗯。但我不能直接添加拆分是吗?因为它是一个模板脚本..?它会显示一些错误吗?
  • 不错。完毕。在模板中做了一个 split() 函数。然后设置条件以限制要显示的照片类型。谢谢简。应该早点问。会为我节省很多时间。
【解决方案2】:

您正在尝试在客户端(在您的 js 模板中)执行服务器端代码 (php)。代码{%=file.name%} 在您的php 代码尝试执行它时尚未被替换(因为它在服务器上)。

如果您混合使用服务器端和客户端代码,您确实需要管理您的逻辑以说明服务器在客户端之前执行。

【讨论】:

  • 我想我得到了一些扩展。这意味着当它进入explode函数时, {%=file.name%} 不会被转换为实际的文件名,而是保持为当前形式。这就是为什么文件名的值没有分解为我想要的形式的原因。
猜你喜欢
  • 2014-05-05
  • 1970-01-01
  • 2012-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-13
相关资源
最近更新 更多