drxt70655 2017-02-06 21:38
浏览 26

CodeIgniter表单验证失败,并且不显示消息

I have a dynamic form that is generated depending on how many people are selected from another page. When I submit this form however, the form validation fails without giving me an error. Could someone take a look and see why it's failing? I have tried debugging it but I can't see it. Maybe my method is wrong? This form used to work as well. It started to not work after I added the form processing for the children. Hopefully someone can help. Thank you so much.

Controller

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Details extends TX_Controller {

    public function __construct(){
        parent::__construct();    
        ini_set('memory_limit', '64M');
        $this->load->model('TransactionsModel');
        $this->load->model('ProductsModel');
    }

    public function index(){
        $data['productdetail'] = $this->ProductsModel->getProduct($this->session->userdata('productid'));
        // var_dump($data['productdetail']);
        $data['adults'] = $this->session->userdata('adults');
        $data['children'] = $this->session->userdata('children');
        $this->load->view('public/publicMenu/navigationLink');
        $this->load->view('public/publicDetails/details',$data);
        $this->load->view('public/publicMenu/navigationJquery');
    }

    public function next(){
        $adultlength = $this->input->post('adults'); 
        $childrenlength = $this->input->post('children'); 
        $this->form_validation->set_error_delimiters('<p class="error">', '</p>');
        for ($i=0; $i < $adultlength; $i++) { 
            $this->form_validation->set_rules('inputfirstname['.$i.']', 'Firstname', 'trim|required');
            $this->form_validation->set_rules('inputlastname['.$i.']', 'Lastname', 'trim|required');
            $this->form_validation->set_rules('inputdateofbirth['.$i.']', 'Date of Birth', 'trim|required');
            $this->form_validation->set_rules('inputicnumber['.$i.']', 'IC Number', 'trim|required');
            $this->form_validation->set_rules('inputmobilenumber['.$i.']', 'Mobile Number', 'trim|required');
            $this->form_validation->set_rules('inputemail['.$i.']', 'Email', 'trim|required');
            $this->form_validation->set_rules('inputconfirmemail['.$i.']', 'Confirm Email', 'trim|required');

            $inputfirstname[] =  $this->input->post('inputfirstname['.$i.']');
            $inputlastname[] =  $this->input->post('inputlastname['.$i.']');
            $inputdateofbirth[] =  $this->input->post('inputdateofbirth['.$i.']');
            $inputicnumber[] =  $this->input->post('inputicnumber['.$i.']');
            $inputmobilenumber[] =  $this->input->post('inputmobilenumber['.$i.']');
            $inputemail[] =  $this->input->post('inputemail['.$i.']');
            $inputpostcode[] =  $this->input->post('inputpostcode['.$i.']');
        }

        for($j=0;$j<$childrenlength;$j++){
            $inputchildfirstname[] =  $this->input->post('inputchildfirstname['.$j.']');
            $inputchildlastname[] =  $this->input->post('inputchildlastname['.$j.']');
            $inputchilddateofbirth[] =  $this->input->post('inputchilddateofbirth['.$j.']');
        }

        if($this->form_validation->run()==false){
            $data['productdetail'] = $this->ProductsModel->getProduct($this->session->userdata('productid'));
            $data['adults'] = $this->session->userdata('adults');
            $data['children'] = $this->session->userdata('children');
            $this->load->view('public/publicMenu/navigationLink');
            $this->load->view('public/publicDetails/details',$data);
            $this->load->view('public/publicMenu/navigationJquery');
        }else{
            for ($i=0; $i < $adultlength; $i++) { 
                $passengerdetails[] = array(
                    'firstname'=>$inputfirstname[$i],
                    'lastname'=>$inputlastname[$i],
                    'dateofbirth'=>$inputdateofbirth[$i],
                    'icnumber'=>$inputicnumber[$i],
                    'mobilenumber'=>$inputmobilenumber[$i],
                    'email'=>$inputemail[$i],
                    'postcode'=>$inputpostcode[$i],
                    'usertype'=>'adult'
                );
            }
            if($childrenlength>0){
                for($j=0;$j<$childrenlength;$j++){
                    $childpassengerdetails[] = array(
                        'firstname'=>$inputchildfirstname[$j],
                        'lastname'=>$inputchildlastname[$j],
                        'dateofbirth'=>$inputchilddateofbirth[$j],
                        'icnumber'=>'',
                        'mobilenumber'=>'',
                        'email'=>'',
                        'postcode'=>'',
                        'usertype'=>'child'
                    );
                }
                $this->session->set_userdata('childpassengerdetails',json_encode($childpassengerdetails));
            }

            $this->session->set_userdata('passengerdetails',json_encode($passengerdetails));
            redirect('/Public/Payment');

        }
    }
}

View

<section id="about" class="container content-section text-center">
        <div class="row">
            <div class="col-lg-8 col-lg-offset-2">
                <h2><?php echo $productdetail->name;?></h2>
                <h2>Enter Passenger Details</h2>
                <?php echo form_open_multipart('Public/Details/next','class="inputform"');?>
                    <h3>Adults</h3>
                    <?php for($i=0;$i<$adults;$i++){?>
                        <input type="hidden" class="form-control" name="adult" value="<?php echo $adults;?>">
                        <label for="inputfirstname">Firstname</label>
                        <input type="text" class="form-control" name="inputfirstname[]" placeholder="Firstname" value="<?php echo set_value('inputfirstname['.$i.'],""');?>">
                        <div class="errormessage"><?php echo form_error('inputfirstname['.$i.']'); ?></div>
                        <label for="inputfirstname">Lastname</label>
                        <input type="text" class="form-control" name="inputlastname[]" placeholder="Lastname" value="<?php echo set_value('inputlastname[$i]');?>">
                        <div class="errormessage"><?php echo form_error('inputlastname['.$i.']'); ?></div>
                        <label for="inputdateofbirth">Date of Birth</label>
                         <input type="date" class="form-control" name="inputdateofbirth[]" value="<?php echo set_value('inputdateofbirth[$i]');?>">
                         <div class="errormessage"><?php echo form_error('inputdateofbirth['.$i.']'); ?></div>
                        <label for="inputicnumber">IC Number</label>
                        <input type="text" class="form-control" name="inputicnumber[]" placeholder="IC Number" value="<?php echo set_value('inputicnumber[$i]');?>">
                        <div class="errormessage"><?php echo form_error('inputicnumber['.$i.']'); ?></div>
                        <label for="inputmobilenumber">Mobile Number</label>
                        <input type="text" class="form-control" name="inputmobilenumber[]" placeholder="Mobile Number" value="<?php echo set_value('inputmobilenumber[$i]');?>">
                        <div class="errormessage"><?php echo form_error('inputmobilenumber['.$i.']'); ?></div>
                        <label for="inputemail">Email</label>
                        <input type="text" class="form-control" name="inputemail[]" placeholder="Email" value="<?php echo set_value('inputemail[$i]');?>">
                        <div class="errormessage"><?php echo form_error('inputemail['.$i.']'); ?></div>
                        <label for="inputconfirmemail">Confirm Email</label>
                        <input type="text" class="form-control" name="inputconfirmemail[]" placeholder="Confirm Email" value="<?php echo set_value('inputconfirmemail[$i]');?>">
                        <div class="errormessage"><?php echo form_error('inputconfirmemail['.$i.']'); ?></div>
                        <label for="inputaddress1">Address</label>
                        <input type="text" class="form-control" name="inputaddress1[]" placeholder="Address 1" value="<?php echo set_value('inputaddress1[$i]');?>">
                        <input type="text" class="form-control" name="inputaddress2[]" placeholder="Address 2" value="<?php echo set_value('inputaddress2[$i]');?>">
                        <input type="text" class="form-control" name="inputaddress3[]" placeholder="Address 3" value="<?php echo set_value('inputaddress3[$i]');?>">
                        <input type="text" class="form-control" name="inputaddress4[]" placeholder="Address 4" value="<?php echo set_value('inputaddress4[$i]');?>">
                        <input type="text" class="form-control" name="inputaddress5[]" placeholder="Address 5" value="<?php echo set_value('inputaddress5[$i]');?>">
                        <label for="inputpostcode">Postcode</label>
                        <input type="text" class="form-control" name="inputpostcode[]" placeholder="Postcode1" value="<?php echo set_value('inputpostcode[$i]');?>">
                        <div class="errormessage"><?php echo form_error('inputpostcode['.$i.']'); ?></div>
                <?php } ?>

                <?php if($children>0){ ?>
                <h3>Children</h3>
                <?php for($j=0;$j<$children;$j++){ ?>
                    <input type="hidden" class="form-control" name="children" value="<?php echo $children;?>">
                    <label for="inputchildfirstname">Firstname</label>
                    <input type="text" class="form-control" name="inputchildfirstname[]" value="<?php echo set_value('inputchildfirstname[$j]');?>" placeholder="Firstname">
                    <label for="inputchildlastname">Lastname</label>
                    <input type="text" class="form-control" name="inputchildlastname[]" value="<?php echo set_value('inputchildlastname[$j]');?>" placeholder="Lastname">
                    <label for="inputchilddateofbirth">Date of Birth</label>
                    <input type="date" class="form-control" name="inputchilddateofbirth[]" value="<?php echo set_value('inputchilddateofbirth[$j]');?>">
                <?php }} ?>
                    <p><button type="submit" class="btn btn-primary">Next</button></p>
                    <p><a href="<?php echo site_url();?>Welcome">Cancel</a></p>
                <?php echo form_close(); ?>
                <p><?php echo $this->session->flashdata('Form'); ?></p>
            </div>
        </div>
    </section>        
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 帮我写一个c++工程
    • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
    • ¥15 关于smbclient 库的使用
    • ¥15 微信小程序协议怎么写
    • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
    • ¥20 怎么用dlib库的算法识别小麦病虫害
    • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
    • ¥15 java写代码遇到问题,求帮助
    • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
    • ¥15 有了解d3和topogram.js库的吗?有偿请教