使用ajax从数据库中获取信息

时间:2012-02-26 14:05:07

标签: php mysql ajax codeigniter

我正在使用codeigniter并希望使用ajax获取一些用户信息。这就是我所拥有的,但它不起作用

在视图中我有一个已定义的变量:

<script type="text/javascript">
    var end_user = "<? echo $user_id; ?>";
</script>
<div id="tabs6"></div>

js file:

function get_experience()
{
$.post(base_url + "index.php/home/get_experience", { user : end_user }, function(data) {
           if (data.status == 'ok')
           {
$("div#tabs6").html(data);
           }
        else
           { //nothing }
           }, "json");
}

            get_experience();

控制器:

public function get_experience()
    {
            $this->load->model('experience_model');
            $end_user = $this->input->post('user');

            $one_exp = $this->experience_model->one_exp($end_user);

            if ($one_exp->num_rows() > 0)
            {
                    $one_exp_html = '<ul>';
                    foreach($one_exp->result() as $exp)
                    {
                            $one_exp_html .= '<li>';
                            $one_exp_html .= $exp->experience;
                            $one_exp_html .= '</li>';
                    }
                    $one_exp_html .= '</ul>';
                    $result = array('status' => 'ok', 'content' => $one_exp_html);
                    return json_encode($result);
                    exit();
            }
            else
            {
                    $result = array('status' => 'ok', 'content' => 'nothing here');
                    return json_encode($result);
                    exit();
            }

    }

模型:

function one_exp($end_user)
    {
            $query_str = "SELECT experience FROM exp WHERE user_id = ?";
            $query = $this->db->query($query_str, $end_user);
    }

3 个答案:

答案 0 :(得分:1)

你必须回应我想的结果,而不是回归它。

答案 1 :(得分:1)

您需要在return $query方法中添加one_exp

修改

您在视图中设置了user_id,但在javascript函数end_user中使用了get_experience()

此外,由于它是json,您需要将html填充更改为

$("div#tabs6").html(data.content);

要获得更多调试,请在回调中添加提醒(在if (data.status == 'ok')添加alert(data);之前)

答案 2 :(得分:0)

我不确定但js中的end_user值出现问题。试一下这个文件:

<script type="text/javascript">
    var end_user = "<? echo $user_id; ?>";
    get_experience(end_user);
</script>
<div id="tabs6"></div>

js文件:

    function get_experience(foo)
    {
        $.post(base_url + "index.php/home/get_experience", { user : foo }, function(data) {
           if (data.status == 'ok')
           {
$("div#tabs6").html(data);
           }
        else
           { //nothing }
           }, "json");
}