Справка по codeigniter form_validation - PullRequest
2 голосов
/ 05 июля 2010

Привет, у меня проблема с проверкой формы, в основном проблема в том, что при повторной проверке загружается повторное представление, пожалуйста, посмотрите мой фрагмент кода,

else {
            //the user is a new customer so we need to show them 
            //the card details form
            $this->addViewData('returningCustomer', false);
            $this->load->library('form_validation');
            if($this->input->post('carddetails') == 'Submit') {
                $this->form_validation->set_rules('inpcardtype', 'Card type', 'cardTypeCheck'); //custom callback
                $this->form_validation->set_rules('inpcardnumber', 'Card number', 'required|trim|exact_length[16]');
                $this->form_validation->set_rules('startmonth', 'Start month', 'trim|required');
                $this->form_validation->set_rules('startyear', 'Start year', 'trim|required');
                $this->form_validation->set_rules('endmonth', 'End month', 'trim|required');
                $this->form_validation->set_rules('endyear', 'End year', 'trim|required');
                $this->form_validation->set_rules('inpissuenumber', 'Issue number', 'trim|integer');
                $this->form_validation->set_rules('inpccv', 'CCV Code', 'required|trim|exact_lenght[3]');
                if($this->form_validation->run() == FALSE) {
                    $this->renderTemplate('cv/search/pf_shortlist.php', $this->viewData);
                } else {
                    // validation is passed we need to safe the user details
                    // it is probable that we will need to hash the users card details
                    //@TODO: HASH USER CARD DETAILS LEAVE ONLY THE FINAL DIGITS
                    $this->load->model('checkout_model');
                }
            }
            $this->renderTemplate('cv/search/pf_shortlist.php', $this->viewData);

в основном, если условие завершается неудачей, после выполнения сценария представление загружается с формой, форма отправляется, и если проверка не проходит, пользователь возвращается к форме, но показывает ошибки, однако также присутствует исходное представление. Могу ли я остановить это, делая это?

1 Ответ

1 голос
/ 05 июля 2010

После

$this->renderTemplate('cv/search/pf_shortlist.php', $this->viewData);

Вы должны сделать return;, как после оператора else есть загрузка другого представления.

        //the user is a new customer so we need to show them 
        //the card details form
        $this->addViewData('returningCustomer', false);
        $this->load->library('form_validation');
        if($this->input->post('carddetails') == 'Submit') {
            $this->form_validation->set_rules('inpcardtype', 'Card type', 'cardTypeCheck'); //custom callback
            $this->form_validation->set_rules('inpcardnumber', 'Card number', 'required|trim|exact_length[16]');
            $this->form_validation->set_rules('startmonth', 'Start month', 'trim|required');
            $this->form_validation->set_rules('startyear', 'Start year', 'trim|required');
            $this->form_validation->set_rules('endmonth', 'End month', 'trim|required');
            $this->form_validation->set_rules('endyear', 'End year', 'trim|required');
            $this->form_validation->set_rules('inpissuenumber', 'Issue number', 'trim|integer');
            $this->form_validation->set_rules('inpccv', 'CCV Code', 'required|trim|exact_lenght[3]');
            if($this->form_validation->run() == FALSE) {
                $this->renderTemplate('cv/search/pf_shortlist.php', $this->viewData);
                return;// HERE
            } else {
                // validation is passed we need to safe the user details
                // it is probable that we will need to hash the users card details
                //@TODO: HASH USER CARD DETAILS LEAVE ONLY THE FINAL DIGITS
                $this->load->model('checkout_model');
            }
        }
        $this->renderTemplate('cv/search/pf_shortlist.php', $this->viewData);
        return;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...