Можно ли как-то передать параметр из сниппета в чанк

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

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

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

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

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


person www.amitpatil.me    schedule 01.08.2012    source источник


Ответы (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

person okyanet    schedule 01.08.2012
comment
Это сработало. Я пробовал 1-й и 3-й метод, оба работали. Но по вашей рекомендации я выберу третье решение. миллион благодарностей - person www.amitpatil.me; 02.08.2012