Kết quả 1 đến 9 của 9
  1. #1
    CI New khoaitayran's Avatar
    Ngày tham gia
    25-07-2013
    Bài viết
    11
    Cảm ơn
    6
    Thanked 1 Time in 1 Post

    Lỗi ko thể giải thích được về gửi yêu cầu ajax đến function trong controller!help!

    Mình thử đủ 2 ngày rồi mà thấy lỗi vô lí quá..hay là codeigniter bị làm sao..mong các bạn giải thích dùm mình:

    Mình có 1 controller Hello,1 model Mhello ,1 giao diện trang chủ có chèn jquery ajax để khi gọi controller Hello sẽ load giao diện.Nếu người dùng bấm vào nút "đăng kí" thì sẽ gửi 1 yêu cầu ajax đến hàm "dangki" trong controller Hello để xử lí và gửi kết quả lại .Mình bị lỗi ở phần gửi kết quả lại:
    - Controller hello:
    Code:
    <?phpclass Hello extends CI_Controller{
        public function __construct(){
            parent::__construct();
                                     }
            public function index()
            {
             $this->load->helper(array('form', 'url'));
            $this->load->view('trangchu');
         
            }
            public function dangki(){
                // $this->load->model('Mhello');        NẾU MÌNH ĐỂ NHƯ THẾ NÀY THÌ TRẢ LẠI DỮ LIỆU VÀ HIỂN THỊ ALERT!
                //$data=$this->Mhello->dangki1();    NẾU MÌNH BỎ 1 TRONG 2 DẤU"//"  HOẶC CẢ 2 THÌ KHÔNG TRẢ DỮ LIỆU THÀNH CÔNG
                 $data = '{"firstname":"abcdefge","surname":"nguyen","phone":"thanh"}';
                echo json_encode($data);     
                                    }    
                                
                            
        } 
    
    
    ?>
    -Đây là đoạn ajax mình chèn vào trangchu trong view:
    Code:
    $.ajax({
          type: 'post',
          url: 'http://localhost/ci/index.php/hello/dangki',
          dataType:'json',
          beforeSend: function() {
          $('#resp').html('Loading...');
          },
          timeout: 10000,        // sets timeout for the request (10 seconds)
          error: function(xhr, status, error) { alert('Error: '+ xhr.status+ ' - '+ error); },
          success: function(response) 
                                      { 
            var obj = jQuery.parseJSON(response);// hoặc hàm javascript:JSON.parse
            alert(obj.firstname);
                                      } 
        });
    Mình đã test rất kĩ không có lỗi cú pháp vì không có 2 dòng load model vẫn gửi dữ liệu bình thường!
    Vấn đề của mình là phải chăng:
    NẾU TỒN TẠI $THIS->LOAD->MODEL trong hàm nhận yêu cầu ajax thì hàm sẽ không thể gửi lại yêu cầu và bị lỗi.???
    .Nếu BỎ $THIS->LOAD->MODEL thì sẽ gửi được????nhưng không hiểu sao lại vậy?mong các bạn giải đáp giúp mình vì mình thấy code nhiều người vẫn $this->load-> model mà vẫn gửi được ? thank you!

  2. #2
    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
    cái dòng json_encode truyền vào là 1 mảng chứ ko phải 1 chuỗi
    Nếu ở trên đã là 1 chuỗi json rồi thì dưới ko phải encode nó nữa

  3. #3
    Moderator 2webvn.com's Avatar
    Ngày tham gia
    27-03-2013
    Bài viết
    203
    Cảm ơn
    24
    Được cảm ơn 119 trong 81 bài viết
    Giống như bạn dzung.tt" href="http://forum.codeigniter.vn/member.php/44-dzungtt.html" target="_blank">dzung.tt đã nói.

    json_encode truyền vào là 1 String Or Array $data = '{"firstname":"abcdefge","surname":"nguyen","phone ":"thanh"}'; nó hiểu là 1 String

    // $this->load->model('Mhello'); NẾU MÌNH ĐỂ NHƯ THẾ NÀY THÌ TRẢ LẠI DỮ LIỆU VÀ HIỂN THỊ ALERT!
    //$data=$this->Mhello->dangki1(); NẾU MÌNH BỎ 1 TRONG 2 DẤU"//" HOẶC CẢ 2 THÌ KHÔNG TRẢ DỮ LIỆU


    Bạn cần xem lại cách đặt Tên Class (Chữ In Hoa Chữ Thường)
    Đối với CI2x bạn nền load như thế này

    $this->load->model('mhello'); // Load Model mhello.php với class Mhello extends CI_Model{}
    $this->mhello->dangki1();
    Đối với CI3x (Bản cập nhật mới nhất)
    $this->load->model('Mhello'); // Load Model Mhello.php với class Mhello extends CI_Model{}
    $this->mhello->dangki1();
    Bạn nên để Môi Trường development để nó show ra lỗi mình có thể thấy được mà Fix
    PHP Code:
    define('ENVIRONMENT''development'); // index.php 

  4. The Following 2 Users Say Thank You to 2webvn.com For This Useful Post:

    khoaitayran (25-07-2013),PhanNguyenChuong (26-07-2013)

  5. #4
    CI New khoaitayran's Avatar
    Ngày tham gia
    25-07-2013
    Bài viết
    11
    Cảm ơn
    6
    Thanked 1 Time in 1 Post
    Trích dẫn Gửi bởi 2webvn.com Xem bài viết
    Giống như bạn dzung.tt" href="http://forum.codeigniter.vn/member.php/44-dzungtt.html" target="_blank">dzung.tt đã nói.

    json_encode truyền vào là 1 String Or Array $data = '{"firstname":"abcdefge","surname":"nguyen","phone ":"thanh"}'; nó hiểu là 1 String



    Bạn cần xem lại cách đặt Tên Class (Chữ In Hoa Chữ Thường)
    Đối với CI2x bạn nền load như thế này


    Đối với CI3x (Bản cập nhật mới nhất)


    Bạn nên để Môi Trường development để nó show ra lỗi mình có thể thấy được mà Fix
    PHP Code:
    define('ENVIRONMENT''development'); // index.php 
    Thanks bạn đã chia sẻ.nhưng như mình đã nói..nếu để nguyên code trên..bỏ 2 dòng load model đi thì vẫn truyền dữ liệu như thường..vậy vấn đề không phải do encode hay không.vì để encode vậy vẫn truyền và nhận dữ liệu.vì mình vẫn nhận được và alert dữ liệu( NẾU BỎ KHÔNG CÓ $THIS->LOAD->MODEL).Mình đang thắc mắc TẠI SAO CHÈN $THIS ->LOAD->MODEL vào thì lại không gửi được???
    Còn về vấn đề load model thì mình không nghĩ là load bị lỗi..vì mình đã load thử với code này và chạy http://localhost/ci/index.php/hello/dangki vẫn hiển thị ra user name lấy từ model bình thường...

    Code:
    public function dangki(){
                $this->load->model('Mhello');
                $data=$this->Mhello->dangki1();
                  echo $data['username'] ;            // vẫn lấy user name truyền từ model MHello bình thường và hiển thị mà không cần đổi tên.
                 $data = '{"firstname":"abcdefge","surname":"nguyen","phone":"thanh"}';
                  echo json_encode($data);          /*vẫn truyền bình thường và lấy được giá trị alert theo yêu cầu NẾU KHÔNG CÓ 2 DÒNG :
                                                                                                           $this->load->model('Mhello');
                                                                                                            $data=$this->Mhello->dangki1(); */
                
                                    }
    Vậy vấn đề là cả truyền dữ liệu từ model và truyền dữ liệu json đều ko sai nhưng đặt chúng cạnh nhau thì không gửi được???
    Code:
     public function dangki(){        //hàm này không gửi được            
               $this->load->model('Mhello');
                $data=$this->Mhello->dangki1();
                 $data = '{"firstname":"abcdefge","surname":"nguyen","phone":"thanh"}';
                  echo json_encode($data);    
                
                                    }
    Mình đã thử sửa như 2 bạn góp ý nhưng kết quả vẫn vậy! bỏ 2 dòng thì gửi được thêm vào thì không gửi được!

  6. #5
    Moderator 2webvn.com's Avatar
    Ngày tham gia
    27-03-2013
    Bài viết
    203
    Cảm ơn
    24
    Được cảm ơn 119 trong 81 bài viết
    @khoaitayran bạn có thể gởi project lên mình sẽ xem dùm cho.
    @khoaitayran Vấn đề đặt tên Class sẽ không bị ảnh hưởng nếu Server bạn chạy trên nền Window. vì Windown nó không phân biệt chữ IN Hoa và Thường.

  7. The Following User Says Thank You to 2webvn.com For This Useful Post:

    khoaitayran (25-07-2013)

  8. #6
    CI New khoaitayran's Avatar
    Ngày tham gia
    25-07-2013
    Bài viết
    11
    Cảm ơn
    6
    Thanked 1 Time in 1 Post
    Trích dẫn Gửi bởi 2webvn.com Xem bài viết
    @khoaitayran bạn có thể gởi project lên mình sẽ xem dùm cho.
    @khoaitayran Vấn đề đặt tên Class sẽ không bị ảnh hưởng nếu Server bạn chạy trên nền Window. vì Windown nó không phân biệt chữ IN Hoa và Thường.
    Bạn kiểm tra giúp mình nhé..mình để file ci trong wamp/www/ đương dẫn đến controller là http://localhost/ci/index.php/hello
    Đây là project của mình..có 1 model "mhello.php" 1 giao dien "trangchu.php" trong view tải script "dropdown.js" chứa ajax và 1 controller hello.php
    http://www.mediafire.com/download/ar...a08jhtg/ci.rar

    THANK BẠN NHIỀU NHÉ!

  9. #7
    Moderator 2webvn.com's Avatar
    Ngày tham gia
    27-03-2013
    Bài viết
    203
    Cảm ơn
    24
    Được cảm ơn 119 trong 81 bài viết
    Mình đã sửa 1 ít bạn đem về xem và test thử nhé

    http://2webvn.com/test/ci.zip //Đã remove trên Server
    Sửa lần cuối bởi 2webvn.com; 26-07-2013 lúc 02:24 AM.

  10. The Following 2 Users Say Thank You to 2webvn.com For This Useful Post:

    administrator (25-07-2013),khoaitayran (25-07-2013)

  11. #8
    CI New khoaitayran's Avatar
    Ngày tham gia
    25-07-2013
    Bài viết
    11
    Cảm ơn
    6
    Thanked 1 Time in 1 Post
    Trích dẫn Gửi bởi 2webvn.com Xem bài viết
    Mình đã sửa 1 ít bạn đem về xem và test thử nhé
    $data = '{"username":"lấy từ hello controller/ dangki ","surname":"nguyen"}'
    hóa ra lỗi là đây...mình tưởng nó bị sao mấy ngày không tìm được lỗi ..h thấy nhẹ nhõm hẳn..cũng may gặp được bạn..thanks bạn nhiều nhé.! bây giờ lại bắt tay vào tìm hiểu codeIgniter tiếp thôi ..^^!!yeah

  12. The Following User Says Thank You to khoaitayran For This Useful Post:

    administrator (25-07-2013)

  13. #9
    Quản trị administrator's Avatar
    Ngày tham gia
    01-03-2013
    Bài viết
    47
    Cảm ơn
    23
    Được cảm ơn 20 trong 15 bài viết
    Trích dẫn Gửi bởi 2webvn.com Xem bài viết
    @khoaitayran bạn có thể gởi project lên mình sẽ xem dùm cho.
    @khoaitayran Vấn đề đặt tên Class sẽ không bị ảnh hưởng nếu Server bạn chạy trên nền Window. vì Windown nó không phân biệt chữ IN Hoa và Thường.
    anh ấy quá pro.:yociexp69:

Chia sẽ và Bình Luận chủ đề Lỗi ko thể giải thích được về gửi yêu cầu ajax đến function trong controller!help! trên facebook

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

  1. [Hỏi] Hỏi về controller
    Bởi oaipro trong diễn đàn Hỏi đáp
    Trả lời: 4
    Bài cuối: 06-06-2014, 11:28 PM
  2. [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
  3. [Hỏi] view controller khác từ controller
    Bởi tuanphuongmda trong diễn đàn Hỏi đáp
    Trả lời: 1
    Bài cuối: 22-05-2013, 11:55 AM
  4. Ajax GET trong Codeigniter
    Bởi nhanh trong diễn đàn Hỏi đáp
    Trả lời: 8
    Bài cuối: 19-05-2013, 04:44 PM

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

Chưa có từ khóa lên top google

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
  •