1

我正在使用 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).")");
}

即使我没有从模型和控制器返回任何东西,它的行为仍然是这样的。有人知道发生了什么吗?

4

4 回答 4

0

检查网络标头以确保您的站点没有抛出 500 或其他内容。

于 2012-06-21T19:16:01.153 回答
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');
于 2012-06-20T19:12:36.527 回答
0

id 建议返回实际的 json 格式数据,而不仅仅是 true。

类似于:

[{"successfull":"yes" }]

并将您的 php 标头设置为应用程序类型 json。

然后在你的javascript中你可以在成功函数中测试

if(data[0]["successfull"].indexOf("yes") != -1)
    {
    dosomething()
    }
于 2012-06-20T20:07:46.157 回答
0

尝试这个:

var post_data = 
{
     username:user_name,
     password:user_password,
     email:user_email,
     role :user_role
};
于 2012-06-20T19:56:42.933 回答