【问题标题】:codeigniter sticky formscodeigniter 粘性表格
【发布时间】:2009-07-25 17:34:48
【问题描述】:

我今天才开始使用 CI。我通常使用 CakePHP,但很多较小的项目需要一些不那么“笨重”的东西。

在 CI 中实现粘性表单(重新加载后保留用户输入)的最简单方法是什么?

我目前有很多单选按钮用于多项选择测验和一些其他文本字段,当验证失败时,数据会丢失......

我可能不需要使用会话变量,因为我没有重定向,我只是在验证失败时加载视图,所以数据应该在 $_POST 中可用..

【问题讨论】:

标签: codeigniter webforms


【解决方案1】:

你看过Validation library吗? CodeIgniter 的大部分内置表单处理都在那里。重新加载表单后使用Form Helper'sset_value()函数重置值:

<input type="text" name="somefield" value="<?php echo set_value('somefield', 'default'); ?>" size="50" />

请注意,要使set_value() 工作,您需要在该字段上运行验证如果您不需要验证表单中的每个字段,您可以设置一个空规则,只需让验证库知道该字段:

$this->validation->set_rules(array('somefield' => ''));

对于单选按钮,请参阅表单助手set_radio() 函数。

【讨论】:

    【解决方案2】:

    使用 javascript 进行验证,而不是刷新页面。

    【讨论】:

    • 因为没有人在关闭 JavaScript 的情况下进行浏览。
    • 我宁愿照顾 95% 启用了 javascript 的人,以使他们的体验更愉快,而不是让网站对 5% 没有启用 javascript 的人做出反应。 w3schools.com/browsers/browsers_stats.asp
    • 我喜欢两者都用。如果用户启用了 javascript,我会使用 ajax 快速提供反馈。如果没有,我使用 php。
    • 使用 JS 的客户端验证很棒,但您仍然需要验证服务器上的数据。网络安全规则 #1 是“不要盲目相信提交的数据。”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-15
    • 2020-01-30
    • 2020-10-15
    • 2019-10-29
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    相关资源
    最近更新 更多