Kết quả 1 đến 7 của 7
  1. #1
    CI Member oaipro's Avatar
    Ngày tham gia
    29-03-2013
    Bài viết
    39
    Cảm ơn
    23
    Được cảm ơn 14 trong 12 bài viết

    [Hỏi đáp] Gọi function callback khi validate form có sử dụng HMVC

    trong user guide phần form validation mình thấy có cái này mình làm mà ko dc gì. Các bạn chú ý hàm "username_check()", dùng để kiểm tra username. Hàm này mình làm theo hướng dãn mà sao ko thấy nó hoạt động gì cả, bạn nào có thể xem lỗi ntn không..?

    PHP Code:
    class Validate extends MX_Controller {
        function 
    __construct()
        {
            
    parent::__construct();
            
    $this->load->library('form_validation');
            
    $this->load->model('Mvalidate');
        }
        public function 
    index()
        {
                
    $this->form_validation->set_rules('username''Username''required|min_length[5]|max_length[12]|callback_username_check');
                
    $this->form_validation->set_rules('password''Password''required|min_length[5]|max_length[12]');
                
    $this->form_validation->set_rules('passconf''Password Confirmation''required|min_length[5]|max_length[12]');
                
    $this->form_validation->set_rules('email''Email''required|valid_email');
                if(
    $this->form_validation->run() == FALSE)
                {
                        
    $this->template->write_view("content","view_validate");    
                }else{
                
    $this->template->write_view("content","view_callback");
            }
                
    $this->template->render();    
        }
        public function 
    username_check($str)
        {
            if (
    $str == 'oaipro')
            {
                
    $this->form_validation->set_message('user_check''Xin lỗi anh chỉ là thằng bán ổi');
                return 
    FALSE;
            }
            else
            {
                return 
    TRUE;
            }
        }


  2. #2
    Super Moderator tinhphaistc's Avatar
    Ngày tham gia
    01-03-2013
    Bài viết
    693
    Cảm ơn
    244
    Được cảm ơn 278 trong 210 bài viết
    Trích dẫn Gửi bởi oaipro Xem bài viết
    trong user guide phần form validation mình thấy có cái này mình làm mà ko dc gì. Các bạn chú ý hàm "username_check()", dùng để kiểm tra username. Hàm này mình làm theo hướng dãn mà sao ko thấy nó hoạt động gì cả, bạn nào có thể xem lỗi ntn không..?

    PHP Code:
    class Validate extends MX_Controller {
        function 
    __construct()
        {
            
    parent::__construct();
            
    $this->load->library('form_validation');
            
    $this->load->model('Mvalidate');
        }
        public function 
    index()
        {
                
    $this->form_validation->set_rules('username''Username''required|min_length[5]|max_length[12]|callback_username_check');
                
    $this->form_validation->set_rules('password''Password''required|min_length[5]|max_length[12]');
                
    $this->form_validation->set_rules('passconf''Password Confirmation''required|min_length[5]|max_length[12]');
                
    $this->form_validation->set_rules('email''Email''required|valid_email');
                if(
    $this->form_validation->run() == FALSE)
                {
                        
    $this->template->write_view("content","view_validate");    
                }else{
                
    $this->template->write_view("content","view_callback");
            }
                
    $this->template->render();    
        }
        public function 
    username_check($str)
        {
            if (
    $str == 'oaipro')
            {
                
    $this->form_validation->set_message('user_check''Xin lỗi anh chỉ là thằng bán ổi');
                return 
    FALSE;
            }
            else
            {
                return 
    TRUE;
            }
        }

    hàm usernam_check bạn chưa kiểm tra dữ liệu ở database thì làm sao mà biết tồn tại hay không?
    THÔNG TIN HỖ TRỢ DIỄN ĐÀN CODEIGNITER VIỆT NAM
    Email: tinhphaistc@gmail.com

  3. #3
    CI Member oaipro's Avatar
    Ngày tham gia
    29-03-2013
    Bài viết
    39
    Cảm ơn
    23
    Được cảm ơn 14 trong 12 bài viết
    Trường hợp này em test bằng cách kia ko dùng database không dc hở anh..? bắt buộc phải xuống csdl?

  4. #4
    Super Moderator tinhphaistc's Avatar
    Ngày tham gia
    01-03-2013
    Bài viết
    693
    Cảm ơn
    244
    Được cảm ơn 278 trong 210 bài viết
    em muốn kiểm tra thì ít nhất em phải dữ liệu để nó kiểm tra, chứ không làm sao nó kiểm tra hả em.
    THÔNG TIN HỖ TRỢ DIỄN ĐÀN CODEIGNITER VIỆT NAM
    Email: tinhphaistc@gmail.com

  5. #5
    Moderator dzung.tt's Avatar
    Ngày tham gia
    13-05-2013
    Bài viết
    49
    Cảm ơn
    21
    Được cảm ơn 21 trong 15 bài viết
    Nguyên nhân :
    Cái hàm gọi function callback trong class Form_validation không làm việc khi chạy cùng với HMVC,
    vì nó không thể nhận biết được controller nào chứa hàm callback đó
    (do class Controller của HMVC là class riêng ko được extent class Controller của CI)

    Cách khắc phục :
    Bạn có thể custom lại class Form_validation như sau :
    Thêm 1 file có nội dung bên dưới, đặt tên là "MY_Form_validation.php" vào thư mục libraries của application

    PHP Code:
    <?php if (!defined('BASEPATH')) exit('No direct script access allowed');

    class 
    MY_Form_validation extends CI_Form_validation
    {
         function 
    run($module ''$group '') {
               
    // Kiểm tra tham số truyền thêm có phải là 1 object
               
    (is_object($module)) AND $this->CI = & $module;
               return 
    parent::run($group);
         }
    }

    Tiếp đến khi gọi đến hàm run() thì truyền thêm biến $this :
    PHP Code:
    if ($this->form_validation->run($this) == FALSE
    Mục đích của code này là truyền 1 obj controller hiện tại để class Form_validation gọi function callback từ controller đó

    Cố gắng ngồi vooc core thằng CI này đi là sẽ ngẫm ra nhiều thứ :D, vì chúng ta đang theo hướng open source
    Chúc bạn thành công !
    Sửa lần cuối bởi dzung.tt; 23-05-2013 lúc 12:10 PM.

  6. #6
    CI Member oaipro's Avatar
    Ngày tham gia
    29-03-2013
    Bài viết
    39
    Cảm ơn
    23
    Được cảm ơn 14 trong 12 bài viết
    OK! cảm Ơn @tinhphaisct và dzung.tt đã suport :yociexp108:
    Sửa lần cuối bởi oaipro; 23-05-2013 lúc 12:28 PM.

  7. #7
    Super Moderator tinhphaistc's Avatar
    Ngày tham gia
    01-03-2013
    Bài viết
    693
    Cảm ơn
    244
    Được cảm ơn 278 trong 210 bài viết
    đã có bài hướng dẫn cho bạn nhé.
    [SOLVED] form validation callback hmvc not working - tinhphaistc
    THÔNG TIN HỖ TRỢ DIỄN ĐÀN CODEIGNITER VIỆT NAM
    Email: tinhphaistc@gmail.com

Chia sẽ và Bình Luận chủ đề [Hỏi đáp] Gọi function callback khi validate form có sử dụng HMVC trên facebook

Các Chủ đề tương tự

  1. form helper codeignter tutorial video - hướng dẫn sử dụng form codeigniter
    Bởi tinhphaistc trong diễn đàn Cho thành viên mới bắt đầu
    Trả lời: 8
    Bài cuối: 22-02-2017, 02:35 PM
  2. Hướng dẫn codeigniter 3 với hmvc
    Bởi truongnguyenhd trong diễn đàn Hỏi đáp
    Trả lời: 3
    Bài cuối: 18-03-2014, 09:58 AM
  3. lỗi không nhận được giá trị trong form khi sử dụng HMVC
    Bởi tuyenboss trong diễn đàn Hỏi đáp
    Trả lời: 2
    Bài cuối: 18-11-2013, 12:10 AM
  4. [Hỏi] function vs Function 2 thằng này có gì khác nhau?
    Bởi 2webvn.com trong diễn đàn PHP
    Trả lời: 5
    Bài cuối: 05-08-2013, 08:56 PM
  5. các bạn cho tớ hỏi mô hình HMVC là thế này phải không
    Bởi Zen Studio trong diễn đàn Hỏi đáp
    Trả lời: 1
    Bài cuối: 01-07-2013, 09:07 PM

Các từ khóa xuất hiện trên google của chủ đề

callback 2 tham so codeigniter

huong dan callback PHP

hàm gọi callback trong codeigniter

Tag của Chủ đề này - Hãy Thêm Tags Để bài viết nhanh lên top google

Quyền viết bài

  • Bạn không thể đăng chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi đính kèm
  • Bạn không thể sửa bài
  •