2012-06-20 89 views
1

我正在使用ajax來執行用戶註冊功能。我使用ajax將用戶信息發送給控制器,然後控制器將信息傳遞給模型以將信息插入數據庫。對控制器錯誤的Ajax請求

插入成功,因爲我看到了我的數據庫中的條目。但是對於我的ajax請求,它總是返回一個錯誤。

我注意到的一件事是,一旦我將其中一個字段留空,它就會返回成功。

我的AJAX腳本如下

var post_data = 
    { 
     'username':user_name, 
     'password':user_password, 
     'email':user_email, 
     'role':user_role 
    }; 


    $.ajax({ 
     type: "POST", 
     dataType: "json", 
     url:"login_register/register_data", 
     data: post_data, 
     success: function(data) { 
       alert('Insertion of user ok'); 
     }, 
     error: function(data) 
     { 
      alert('Insertion of user error ' + data.responseText); 
     } 
    }); 

我控制器代碼

public function register_data() 
{ 
    $this->load->database(); 
    $this->load->model('login_model'); 

    $user_name=$this->input->post('username'); 
    $user_password=$this->input->post('password'); 
    $user_email=$this->input->post('email'); 
    $user_role=$this->input->post('role'); 

    $result = $this->login_model->register_data_model($user_name,$user_password,$user_email,$user_role); 

    //if($result) 
     echo "true"; 
    //else echo "false"; 
} 

我的模型代碼

public function register_data_model($user_name,$user_password,$user_email,$user_role) 
{ 
    $result = $this->db->query("INSERT INTO user_table (user_name,user_password,user_email,user_role) VALUES (".$this->db->escape($user_name).",".$this->db->escape($user_password).",".$this->db->escape($user_email).",".$this->db->escape($user_role).")"); 
} 

即使我不從模型和控制器返回任何東西,它仍然表現得如此。任何人都知道發生了什麼?

回答

0

我不認爲post_data是正確的......試試這個:

$.ajax({ 
    type: "POST", 
    dataType: "json", 
    url:"login_register/register_data", 
    data: {user_name:'username', user_password:'password',user_email:'email',user_role:'role'}, 
    success: function(data) { 
      alert('Insertion of user ok'); 
    }, 
    error: function(data) 
    { 
     alert('Insertion of user error ' + data.responseText); 
    } 
}); 

這就需要你在控制器中的新密鑰來獲得,即

$user_name=$this->input->post('user_name'); 
0

試試這個:

var post_data = 
{ 
    username:user_name, 
    password:user_password, 
    email:user_email, 
    role :user_role 
}; 
0

id建議返回實際的json格式的數據而不是true。

東西沿着線:

[{"successfull":"yes" }] 

,並設置你的PHP頭應用程序類型JSON。

然後在你的JavaScript可以在成功測試功能

if(data[0]["successfull"].indexOf("yes") != -1) 
    { 
    dosomething() 
    } 
+0

雖然它不會去成功的功能,它仍然會去錯誤的功能。 – edelweiss

+0

你確定你要返回json頭文件嗎? – Tschallacka

+0

我們如何檢查我是否返回json頭文件? – edelweiss

0

檢查網絡報頭,以確保你的網站是不是拋出一個500什麼的。