我正在使用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 :(得分: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');
答案 1 :(得分:0)
试试这个:
var post_data =
{
username:user_name,
password:user_password,
email:user_email,
role :user_role
};
答案 2 :(得分:0)
id建议返回实际的json格式数据,而不仅仅是true。
类似于:
[{"successfull":"yes" }]
并将您的php标头设置为应用程序类型json。
然后在你的javascript中你可以在成功函数中进行测试
if(data[0]["successfull"].indexOf("yes") != -1)
{
dosomething()
}
答案 3 :(得分:0)
检查网络标题,确保您的网站没有投放500或其他内容。