在CodeIgniter中设置$ _POST将覆盖表单验证..?

在CodeIgniter中设置$ _POST将覆盖表单验证..?

问题描述:

所以在这篇文章中How do you set a CodeIgniter radio button, before it's in the $_POST? TwiStar解释了如何修改$ _POST变量,这很好...除了它好像覆盖了CodeIgniter表单验证函数。

if ($this->form_validation->run() === FALSE) {...} 

这可能是由于我的设计...我有一些数据,我用预填充我的形式,我呈现给用户查看和修改,如果他们的愿望。预填充(不幸的是,在这种情况下)为表单验证提供了准确的数据。

所以我猜CodeIgniter的form_validation->run()是真的,当$ _POST包含正确的内容,这意味着我的表单验证是在我开始之前。

如果我忽略了其中一个预填充值,我会得到糟糕的用户体验。

我该如何处理这个更好?

我发现问题似乎更多的是设计和流程。

问题: 想要用数据库值预先填充表单,然后允许用户修改它们,并通过表单验证提交它们。

解决办法:

  • 在控制器我没有尝试与if (!isset($_POST['myradio'])) {...}

  • 修改$ _ POST值在窗体中,我没有利用set_radio()的功能,特别是第三有关默认值的参数。

的HTML是

<input type="radio" name="target" value="direct" <?php echo set_radio('target', "direct", ($data['target'] === 'direct' ? TRUE : " ")); ?> />