我有一种情况,如果我的表单不验证我需要它从网址中除去第一个参数。原因是因为我的表单的结果显示在内容区域的表单下方。如果表单不确认我需要删除任何以前的结果。验证失败时重定向表单
我已经在我的form_validate函数中尝试了以下内容。
// Check if there were any errors.
$errors = form_set_error();
if (!empty($errors)) {
drupal_goto(arg(0));
}
目标页面显然是相同的,除了第一个,除了第一个,所有的参数被剥离。问题是Drupal忘记了form_validate函数引发的以前的表单状态和错误。
我也尝试改变我的form_validate函数中的#redirect值,但无济于事。
有什么建议吗?
在自定义PHP网站中,您的方法可行。但是,Drupal拥有自己的表单处理API。真的,这更像是一个Drupal问题,而不是PHP甚至表单验证问题。 – Icode4food 2010-06-23 18:57:15
API文档的快速扫描,它提到$ form_state ['values']数组,我猜是你所有的过滤表单值,但你是对的,它乍看起来似乎不是一种解析除了$ _ POST。为什么不将$ form_state存储在会话中,然后假装表单已被验证,并用会话值覆盖$ form_state – gawpertron 2010-06-23 19:09:55