1

私はすでに同じトピックを扱っているいくつかの投稿を知っています。

リンクは次のとおりです。

jQueryでのJavascriptテンプレートエンジンの使用

x-tmplとは何ですか?

phpexplode関数をjavascriptテンプレートに取り込もうとしています。プラグインはjQuery-File-Uploadfromblueimp@ 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に従って文字列全体が含まれます。

これが可能かどうかはわかりません。私は一日中試しています。これが実行可能でないか、論理的に正しくない場合は、私に知らせてください。そうすれば、私はこの仕事をしたいと思うのをやめることができます。ありがとう、感謝します。

4

2 に答える 2

5

あなたはあなたのphpコードでjavascript値を読み込もうとしています。

{%=file.name%}は単にphpへの文字列であり、phpが出力をレンダリングするときに実際のファイル名は含まれていません。したがって、print_r()が出力{%=file.name%}され、php処理全体が完了した後、ブラウザで後でファイル名に変換されます。

このようなものをjavascriptだけで実装してみてください。

于 2012-09-05T15:41:00.123 に答える
2

クライアント(jsテンプレート内)でサーバー側コード(php)を実行しようとしています。{%=file.name%}phpコードが実行しようとしている時点では、コードは置き換えられていません(サーバー上にあるため)。

サーバー側とクライアント側のコードを混在させる場合は、クライアントの前に実行されるサーバーを考慮してロジックを管理する必要があります。

于 2012-09-05T15:40:24.993 に答える