Есть ли способ передать параметр из фрагмента в чанк?
Я изучаю 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