【问题标题】:form date check in codeigniter framework在codeigniter框架中形成日期检查
【发布时间】:2018-04-04 12:22:10
【问题描述】:

所以我制作了一个表格,工作人员可以使用表格发布足球或网球等活动。所以我有 2 个他们可以选择的日期。第一个日期是活动的开始日期,第二个日期是活动的结束日期。我不希望它能够选择早于所选开始日期的结束日期。因此,例如,我想填写保龄球之类的活动,并以我在开始日期 03-04-2018 和结束日期 02-02-2018 的表格中填写,我不希望这成为可能。

这是我的表单的外观:

  <?php  echo form_open('index.php/Jongeren_activiteiten/Add_activiteit'); ?>
            <br>
            <center>Naam van activiteit:</center>
                <div class="form-group">
                    <input class="form-control" name="activiteit" id="activiteit" type="text">
                </div>
                <center>Begindatum:</center>
                 <div class="form-group">
                    <input class="form-control" name="begindatum" id="begindatum" placeholder="Startdatum cursus" type="date">
                </div>
                <center>Einddatum:</center>
                 <div class="form-group">
                    <input class="form-control" name="einddatum" id="einddatum" placeholder="einddatum cursus" type="date">
                </div>

                <div>
                    <button class="btn btn-primary" name="Add_activiteit" >Toevoegen</button>
                </div>
            </form>       

这是表单的控制器功能:

public function Add_activiteit()
    {
    if (isset($_POST['Add_activiteit'])) {
            $this->form_validation->set_rules('activiteit', 'Activiteit', 'required');
            $this->form_validation->set_rules('begindatum', 'Begindatum', 'required');
            $this->form_validation->set_rules('einddatum', 'Einddatum', 'required');
            //If form validation true
            if ($this->form_validation->run() == TRUE) {
               // echo 'form validated';

                $data = array (
                    'activiteit'=>$_POST['activiteit'],
                    'begindatum'=>$_POST['begindatum'],
                    'einddatum'=>$_POST['einddatum'],
                    );
                $this->db->insert('activiteit',$data);

                $this->session->set_flashdata("success", "u heeft een nieuwe activiteit toegevoegd");
                redirect("index.php/Jongeren_activiteiten", "refresh");
            }
        }


    }

begindatum 表示开始日期,einddatum 表示结束日期。那么如何解决它,以便您只能选择晚于开始日期的结束日期? 我也不希望人们能够选择过去的一天。

感谢任何形式的帮助

【问题讨论】:

标签: php codeigniter codeigniter-3


【解决方案1】:

你应该使用回调函数..

您可以通过创建这样的函数来执行此操作:

function checkDate($start, $end){
    if($start > $end){
        $this->form_validation->set_message('checkDate', 'The end date must be later than the start date.');
        return FALSE;
    }else{
        return TRUE;
    }
}

然后你将它添加到你的表单验证规则中(我会在结束日期这样做),但在它前面加上'callback_'

所以它看起来像这样:

$this->form_validation->set_rules('einddatum', 'Einddatum', 'required|callback_checkDate');

CodeIgniter 提供的进一步解释可以在这里找到:https://www.codeigniter.com/user_guide/libraries/form_validation.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    • 2010-09-07
    • 2013-10-19
    • 2018-07-11
    • 1970-01-01
    • 2015-09-24
    • 1970-01-01
    相关资源
    最近更新 更多