メインログインページのイベントの後、json経由でコントローラからビューにデータを渡そうとしています。ログインページ js は次のようになります。
$('#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);
}
}
結局のところ、データを送信しようとすると、「すべてが美しい」というテキストのアラートを受け取るはずですが、アラートは「ポップアップ」しません。
ところで私は応答のためにfirebugでそれをチェックしました、そして応答は私のhome_viewファイルからの同じHTMLコードです。
なにが問題ですか?コントローラから正常な応答を受け取るにはどうすればよいですか?