我知道有些帖子已经在处理同一主题。
以下是链接:
Javascript 模板引擎与 jQuery 一起使用
什么是 x-tmpl?
我正在尝试将 php 爆炸函数合并到 JavaScript 模板中。该插件是 blueimp @ 的 jQuery-File-Upload,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。
我不确定这是否可能。我一整天都在努力。如果这不可行或逻辑不正确,请告诉我,以便我可以停止尝试使这项工作。谢谢,很感激。
您正在尝试读取PHP代码中的JavaScript值。
{%=file.name%}
只是 PHP 的字符串,在 PHP 呈现输出时不包含实际的文件名。 所以你的 print_r(( 会输出{%=file.name%}
然后在整个 PHP 处理完成后稍后在浏览器中翻译成你的文件名。
尝试单独在JavaScript中实现这些东西。
您正在尝试在客户端(在 js 模板中(执行服务器端代码 (php(。在您的 php 代码尝试执行代码时,代码{%=file.name%}
尚未被替换(因为它在服务器上(。
如果混合使用服务器端和客户端代码,则确实需要管理逻辑以考虑服务器在客户端之前执行的问题。