【问题标题】:Custom form validation in codeigniter not workingcodeigniter 中的自定义表单验证不起作用
【发布时间】:2018-04-25 09:45:55
【问题描述】:

我有一个包含一些验证检查的页面。

$this->form_validation->set_rules('category', 'categorie', 'required_fr');
$this->form_validation->set_rules('description', 'omschrijving', 'required');

我的 form_validation_lang.php 文件如下所示:

$lang['required'] = 'Error message 1';
$lang['required_fr'] = 'Error message 2';

required 是一个标准值,我添加了 required_fr。如果两个验证检查都失败,我只会收到“错误消息 1”。第二次检查 (required_fr) 不起作用。

如果我在 form_validation_lang.php 文件中编辑“必需”值,当表单验证失败时,错误消息也会发生变化。但是 'required_fr' 值显然无法加载。

我也试过放

$this->form_validation->set_message('required_fr', 'Error Message 2');

在我的功能中,但它也不起作用。 解决方案可能很简单,但我认为我忽略了一些东西。

我页面的重要部分如下所示

<?php echo validation_errors(); ?>

        <div class="form-group">
            <label for="ticketCategory" class="col-sm-2 control-label"><?php echo ($this->session->userdata('franstalig') == 0) ? "Categorie" : "Catégorie" ?></label>
            <div class="col-sm-6">
                <select class="form-control" id="ticketCategory" name="category">
                    <option value="">Gelieve een categorie te selecteren</option>
                    <?php if (isset($categories) && !empty($categories)): ?>
                        <?php foreach ($categories as $category): ?>
                            <option value="<?php echo $category['id'] ?>" <?php echo set_select('category', $category['id']); ?>><?php echo $category['description']; ?></option>
                        <?php endforeach; ?>
                    <?php endif; ?>
                </select>
            </div>
        </div>
        <div class="form-group">
            <label for="ticketDesc" class="col-sm-2 control-label">Omschrijving</label>
            <div class="col-sm-6">
                <textarea name="description" id="ticketDesc" class="form-control" rows="16"><?php echo set_value('description'); ?></textarea>
            </div>
        </div>

validation_errors() 函数可能有问题吗?

【问题讨论】:

  • 您是否加载了语言文件。
  • 我现在做了,但它仍然无法正常工作。如果调用 'required_fr',validation_errors() 不会显示错误。

标签: php forms codeigniter validation


【解决方案1】:

另一种方式。

尝试更改:

$this->form_validation->set_rules('category', 'categorie', 'required_fr');

收件人:

$this->lang->load('form_validation_lang');
$this->form_validation->set_rules('category', 'categorie', 'required', array('required' => $this->lang->line('required_fr')));

【讨论】:

  • 然后我得到这个:消息:未定义变量:lang
  • 更新了我的答案。
  • 我编辑了,但还是不行。我没有错误了,但 validation_errors() 仍然返回“错误消息 1”,它链接到“必需”
  • 在,form_validation_lang.php$lang['required_fr'] 仍然设置为'Error message 2'
  • 是的。它只显示错误消息 1,它链接到“必需”。虽然我已经用$this-&gt;lang-&gt;load('form_validation'); 替换了$this-&gt;lang-&gt;load('form_validation_lang');。如果我编辑错误消息 1,更改将应用​​于我的应用程序
【解决方案2】:

我解决了这个问题。我加了

public function required_fr($str) 
{
    if ( ! is_array($str))
    {
        return (trim($str) == '') ? FALSE : TRUE;
    }
    else
    {
        return ( ! empty($str));
    }
} 

到我的班级,并打电话给$this-&gt;form_validation-&gt;set_rules('category', 'categorie', 'callback_required_fr');。 成功了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-09
    • 1970-01-01
    • 2013-02-28
    • 1970-01-01
    • 2022-11-04
    • 2020-03-28
    • 2012-07-14
    • 1970-01-01
    相关资源
    最近更新 更多