0

私はmodxを学んでいて、ある時点で立ち往生しています。「uid」値を POST のみで次のページに投稿し、「uid」を値として含む非表示フィールドを設定したいと考えています。実際には、チャンクに値を渡すことは許可されていないと思います。POSTデータを取得してその値をチャンクで使用できるようにするための適切な方法を知りたいですか??

私の手順

1) スニペットの呼び出しとチャンクを含むリソース (ドキュメント) を作成しました

2) スニペットには、POST から取得した値が含まれています

3) チャンクにはフォームとフィールドが含まれています。このフォームにその POST 値を挿入したいと考えています。

4

1 に答える 1

5

これを行うにはいくつかの方法があります。

1) スニペットから uid 値を直接返し ( getPostDataと呼びましょう)、次のようにスニペット呼び出しをチャンクの非表示フィールドに配置します。

<input type="hidden" name="uid" value="[[!getPostData]]" />

スニペットはキャッシュされていない ([[!開始タグ) ことに注意してください。それ以外の場合、最初のフォーム送信がキャッシュされます。

2) スニペット呼び出しをチャンク タグに配置し、値をプレースホルダーに渡します。

[[$myChunk?uid=`[[!getPostData]]`]]

...そして、チャンクで「uid」のキャッシュされていないプレースホルダーを設定します。

<input type="hidden" name="uid" value="[[!+uid]]" />

3)推奨:スニペットで使用setPlaceholders()して、コンテンツをページ内の任意のプレースホルダーに出力します。これを使用して、複数のプレースホルダーに出力できます。

<?php
// please sanitise your POST values, this is just an example
$placeholders = array();
$placeholders['uid'] = $_POST['uid'];
$placeholders['email'] = $_POST['email'];

$modx->setPlaceholders($placeholders);

...そしてあなたのチャンク:

<input type="hidden" name="uid" value="[[!+uid]]" />
<input type="email" name="email" value="[[!+email]]" />

ドキュメント: http://rtfm.modx.com/display/revolution20/modX.setPlaceholders

于 2012-08-01T23:41:12.510 に答える