【问题标题】:Setting $_POST in CodeIgniter overrides form validation..?在 CodeIgniter 中设置 $_POST 会覆盖表单验证..?
【发布时间】:2014-08-29 22:54:53
【问题描述】:

所以在这篇文章中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 包含正确的内容时为真,这意味着我的表单验证在我开始之前就正确了。

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

我怎样才能更好地处理这个问题?

【问题讨论】:

    标签: php forms codeigniter


    【解决方案1】:

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

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

    解决办法:

    • 在控制器中,我没有尝试使用 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 : " ") ); ?> />
    

    【讨论】:

      猜你喜欢
      • 2012-11-14
      • 1970-01-01
      • 1970-01-01
      • 2016-02-12
      • 1970-01-01
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多