Есть ли способ передать параметр из фрагмента в чанк?

Я изучаю modx и застрял в точке. Я хочу опубликовать значение "uid" на следующей странице только через POST и установить скрытое поле, которое будет содержать "uid" в качестве значения. Я полагаю, что практически не допускается передача значений в чанк. Я хочу знать, что является правильным способом, чтобы я мог получить данные POST и использовать это значение в чанке?

Моя процедура

1) Я создал ресурс (документ), который содержит вызов фрагмента, а затем кусок

2) фрагмент содержит значение, полученное из POST

3) чанк содержит форму и поля, я хочу ввести это значение POST в этой форме.

1 ответ

Решение

Есть несколько способов сделать это.

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

Другие вопросы по тегам