【问题标题】:Codeigniter array backend validationCodeigniter 数组后端验证
【发布时间】:2017-02-17 21:54:45
【问题描述】:

我正在使用一个表单,其中包含一个带有一对动态添加的输入字段的 div。

查看:

<?php echo form_open_multipart('location/add'); ?>
<div>
<input type="text" name="title[]"/>
<div id="infoMessage"><?php echo form_error('title[]'); ?></div>
</div>
<div>
<input type="text" name="desc[]"/>
<div id="infoMessage"><?php echo form_error('desc[]'); ?></div>
</div>
<div>
<input type="text" name="link[]"/>
<div id="infoMessage"><?php echo form_error('link[]'); ?></div>
</div>  

<input type="submit" name="" value="enter">  
<?php echo form_close(); ?> 

现在,最初我不想验证这 3 个输入字段,但我希望在按下提交按钮时对所有要动态添加的输入字段进行后端验证(通过单击 +)。

控制器:

    public function add()
    {

        $this->form_validation->set_rules('title[]','Title','required');
        $this->form_validation->set_rules('desc[]','Description','required');
        $this->form_validation->set_rules('link[]','Link','required');

            if ($this->form_validation->run() == FALSE)
            {
                $this->load->view('test');
            }
            else
            {
                ....
            }

    }

【问题讨论】:

    标签: arrays codeigniter validation codeigniter-3


    【解决方案1】:

    您可以使用自定义回调验证函数 例如:

    public function add()
    {
        $this->form_validation->set_rules('title', 'Title', 'callback_title_validate');
        if ($this->form_validation->run() == FALSE)
        {
            $this->load->view('test');
        }
        else
        {
            //....
        }
    }
    
    function title_validate($title){
        foreach($title as $key=>$value){
            if($title[$key]==null || $title[$key]==false){
            $this->form_validation->set_message('title_validate', 'The Title field is Required.');
                return FALSE;
            }
            }
        return TRUE;
    }
    

    【讨论】:

    • 看到初始输入字段也会生效吗?
    • 不,您必须为所有要验证的字段自定义验证功能。
    • 我想你没有得到我的问题:(
    • @Shihas 你想只验证那些动态添加的数据而不是第一个吗?
    • @samjhanajoshi 我想验证那些动态添加的字段
    猜你喜欢
    • 2011-07-10
    • 2016-09-26
    • 2016-09-22
    • 2016-12-14
    • 2013-01-05
    • 2013-07-20
    • 2016-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多