2

ボタンがクリックされるたびに、jquery を使用してマトリックス フィールドにスライドを動的にロードする方法を理解しようとしています。

任意の数の画像を含めることができるこのマトリックス フィールドがあります。エントリの数は少ないが可変 (約 5) で、それぞれのマトリックス フィールドに異なるスライドショー コンテンツがあります。

1 つのオプションは、マトリックス フィールドを出力する別のテンプレートを作成し、.load を使用して id によって < li > を選択的に取り込むことができるというものです。

$('#result').load('ajax/test.html #container');

ただし、このテンプレートは最新のエントリにのみ有効であり、他のエントリには間違ったスライドが表示されます。

私が考えたもう1つの方法は、jqueryを使用してマトリックスパラメーターを動的に更新することです。しかし、解析される js で EE タグを記述できないようです。

$('ul#slides').html("{project_images limit='2' offset='0'}{/project_images}");

これは静的 html をレンダリングするだけです。

おそらく、私が知らない(javascriptテンプレート?)を使用して、これを行う方法があるように感じます。

私の最良の手がかりは、ブランドン・ケリーからのこの短いスレッドです

でも、次に何をすればいいのかわからない…

これを達成する方法について考えている人はいますか?

ありがとう!

4

2 に答える 2

5

上記のコメントは重要です。{project_images}{/project_images}タグペアの中に実際に何かがあることを確認してください。

また、設定を確認してください - Admin -> Security -> Output and Debuggingの下、またはファイルベースの設定を使用する場合は設定ファイルで - (スーパー管理者のみにエラー メッセージを表示する) にDebugging設定されていることを確認してください。しない(エラー メッセージを表示しない)。0 に設定すると、Javascript 内の EE タグで奇妙な問題が発生し、常に発生します。10

于 2012-10-21T18:34:28.133 に答える
4

jQuery .load() を使用して追加のコンテンツをロードし、追加のマトリックス コンテンツを html フラグメントとしてロードする計画は機能します。

正しいエントリのマトリックス データを確実にロードするために、entry_id を URL セグメントとして渡すことができます。

そう:

「ajax.group」というテンプレート グループを作成し、「matrix.html」というテンプレートを追加します (これらの名前は任意です)。次に、マトリックスデータをロードすると、次のようになります

$('#result').load('/ajax/matrix/{entry_id} #container');

{entry_id} が解析され、現在表示されているエントリ ID が提供されるテンプレート内の場所に、この jQuery を配置してください。または、url_title、または entry_id または url_title を含むセグメント ベースの変数を使用することもできます。

次に、ajax/matrix テンプレートで次のようにします。

<div id="container">
{exp:channel:entries channel="channel_name_here" entry_id="{segment_3}"}
    {matrix_custom_field_name offset="1"}
        {matrix_column_short_name_here}
    {/matrix_custom_field_name}
{/exp:channel:entries}  
</div>
于 2012-10-22T20:04:22.270 に答える