2017-02-11 3 views
1

Я пытаюсь проверить номера кредитных карт, и до сих пор я могу получить от него результат. Однако всякий раз, когда он терпит неудачу, сообщение подтверждения для формы не будет отображаться. Я пробовал несколько методов, включая настройку обратного вызова. Я не уверен, что мне не хватает. Надеюсь, кто-то может взглянуть и помочь мне.CodeIgniter, как установить подтверждение сообщения из функции

Контроллер

public function next(){ 
     $this->form_validation->set_error_delimiters('<p class="error">', '</p>'); 
     $this->form_validation->set_rules('inputcardtype','Select Card Type','required|callback_check_default'); 
     $this->form_validation->set_message('check_default', 'Please select the month of expiration'); 
     $this->form_validation->set_rules('inputcardnumber', 'Card Number', 'trim|required|xss_clean'); 
     $this->form_validation->set_rules('inputexpirationdatemonth','Select Month','required|callback_check_default'); 
     $this->form_validation->set_message('check_default', 'Please select the month of expiration'); 
     $this->form_validation->set_rules('inputexpirationdateyear','Select Year','required|callback_check_default'); 
     $this->form_validation->set_message('check_default', 'Please select the year of expiration'); 
     $this->form_validation->set_rules('inputnameoncard', 'Name on Card', 'trim|required|xss_clean'); 

     $inputcardnumber = $this->input->post('inputcardnumber'); 
     $inputcardtype = $this->input->post('inputcardtype'); 
     // var_dump($this->cardnumber_validation($inputcardnumber,$inputcardtype)); 
     if($this->form_validation->run()==false||$this->cardnumber_validation($inputcardnumber,$inputcardtype)==FALSE){ 
      $this->index(); 
     }else{ 

     } 

    } 

    function cardnumber_validation($string = NULL,$cardtype=NULL) { 
     $this->load->helper('creditcardvalidation'); 
     if(checkCreditCard ($string, $cardtype, $ccerror, $ccerrortext)) { 
      return TRUE; 
     } 
     else{ 
      $this->form_validation->set_message("inputcardnumber", 'Invalid Card Number'); 
      return FALSE; 
     } 
    } 

    function check_default($post_string){ 
     return $post_string == '0' ? FALSE : TRUE; 
    } 
+0

Не могу понять, как использовать методы контроллера, вы могли бы включать в индекс метод и связанные с ним взгляды? – jtheman

+0

Все в порядке. Мне удалось это решить! Спасибо за помощь! – JianYA

+1

Пожалуйста, напишите свой ответ. – Faegy

ответ

0

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

$this->form_validation->set_rules('inputcardnumber', 'Card Number', 'trim|required|xss_clean|callback_cardnumber_validation['.$this->input->post('inputcardtype').']'); 
Смежные вопросы