我正在学习 modx 并停留在一个点上。我想仅通过 POST 将“uid”值发布到下一页,并希望设置隐藏字段,其中包含“uid”作为值。我相信实际上它不允许将值传递给块。我想知道正确的方法是什么,以便我可以获取 POST 数据并在块中使用该值?
我的程序
1)我创建了资源(文档),其中包含对片段的调用,然后是块
2) 片段包含从 POST 检索到的值
3)块包含一个表单和字段,我想在这个表单中注入那个 POST 值。
我正在学习 modx 并停留在一个点上。我想仅通过 POST 将“uid”值发布到下一页,并希望设置隐藏字段,其中包含“uid”作为值。我相信实际上它不允许将值传递给块。我想知道正确的方法是什么,以便我可以获取 POST 数据并在块中使用该值?
我的程序
1)我创建了资源(文档),其中包含对片段的调用,然后是块
2) 片段包含从 POST 检索到的值
3)块包含一个表单和字段,我想在这个表单中注入那个 POST 值。
有几种方法可以做到这一点。
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