2013-07-26 49 views
1

我想从控制器传递数据通过json查看,在我的主要登录页面事件后。登录页面JS的样子:如何将数据从控制器传递给CodeIgniter上的json浏览器?

$('#submit_loginform').live('click',function(){ 

    $("#error_message").fadeIn(500).html("<img src='images/loaders/loader2.gif' alt='loading' />"); // debug message area 

    //var login_name = $("#login").val(); 
    //var pass  = $("#pass").val(); 

    var data  = { 
     name  : $("#login").val(), 
     password : $("#password").val(), 
     ajax  : 1 
    } 

    $.ajax({ 
     url: "home/login_validation", // my home controller function "login_validation: 
     type: 'POST', 
     dataType: 'json', 
     data: data, 
     success: function (data) { 

      if(data.message){ 
       alert(data.message); 
      } 
     }, 
     error: function (e) { 
      console.log(e.message); 
     } 
    }); 

}); 

而且我的控制器看起来像:

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

class Home extends CI_Controller { 

    public function index(){ 

     $data = array(
      "text" => "Welcome", 
      "time" => date("Y/m/d") 
     ); 

     $this->load->view('home_view.php', $data); 
    } 

    public function login_validation(){ 

     $array = array(
      "message" => "all things are beutiful" 
     ); 

     $data['json'] = json_encode($array); 
     $this->load->view('login_view.php', $data);   
    } 

} 

毕竟,当我试图提交数据,我应该用文字收到警报“所有的东西都美丽“,但警报不是”弹出“。

顺便说一句我与萤火虫检查它的响应,响应是从我home_view文件相同的HTML代码。

有什么不对?我应该做些什么来接收控制器的正常响应?

+1

是什么'login_view.php'? – dm03514

回答

1

您的ajax函数期待json作为响应。

您可以通过直接呼应的JSON字符串,或者将您的视图渲染一个做到这一点。

public function login_validation(){ 

    $array = array(
     "message" => "all things are beutiful" 
    ); 

    $data['json'] = $array; 
    echo json_encode($data);   
} 

// js 
alert(response.json.message); 
+0

你说得对,现在我在我的data.json响应中收到“{”json“:”{\“message \”:“所有东西都很美丽”}“}}的警报。我应该如何将它转换为数组,我只能键入data.message并获得“所有东西都很美好”? – baitas212123

+0

我完成了,感谢主席先生。 – baitas212123

+0

更新了正确编码的答案 – dm03514

相关问题