无论如何将参数从片段传递到块

时间:2012-08-01 15:07:31

标签: modx modx-revolution modx-chunks

我正在学习modx并坚持到一定程度。我想通过POST将“uid”值发布到下一页,并希望设置隐藏字段,其中包含“uid”作为值。我相信它几乎不允许将值传递给chunk。  我想知道什么是正确的方式,所以我可以获得POST数据并在块中使用该值?

我的程序

1)我创建了资源(文档),其中包含对代码段的调用,然后是块

2)代码段包含从POST检索的值

3)chunk包含一个表单和字段,我想以这种形式注入该POST值。

1 个答案:

答案 0 :(得分: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