www*_*.me 0 modx modx-revolution modx-chunks
我正在学习modx并坚持到一点.我想通过POST将"uid"值发布到下一页,并希望设置隐藏字段,其中包含"uid"作为值.我相信它几乎不允许将值传递给chunk.我想知道什么是正确的方式,所以我可以获得POST数据并在块中使用该值?
我的程序
1)我创建了资源(文档),其中包含对代码段的调用,然后是块
2)片段包含从POST检索的值
3)chunk包含一个表单和字段,我想以这种形式注入该POST值.
有几种方法可以做到这一点.
1)直接从代码段返回uid值(让我们称之为getPostData),并将片段调用放在块中的隐藏字段中,如下所示:
<input type="hidden" name="uid" value="[[!getPostData]]" />
Run Code Online (Sandbox Code Playgroud)
请注意,代码段未缓存([[!打开标记),否则将缓存第一个表单提交.
2)将片段调用放在块标记中,并将值传递给占位符:
[[$myChunk?uid=`[[!getPostData]]`]]
Run Code Online (Sandbox Code Playgroud)
...并在你的块中为'uid'设置一个未缓存的占位符:
<input type="hidden" name="uid" value="[[!+uid]]" />
Run Code Online (Sandbox Code Playgroud)
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);
Run Code Online (Sandbox Code Playgroud)
......和你的大块:
<input type="hidden" name="uid" value="[[!+uid]]" />
<input type="email" name="email" value="[[!+email]]" />
Run Code Online (Sandbox Code Playgroud)
文档:http://rtfm.modx.com/display/revolution20/modX.setPlaceholders