Использование ajax для получения информации из базы данных - PullRequest
0 голосов
/ 26 февраля 2012

Я использую codeigniter и хотел бы получить некоторую информацию о пользователе с помощью ajax.Это то, что у меня есть, но оно не работает

В представлении у меня есть определенная переменная:

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

js файл:

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 ]

1 голос
/ 26 февраля 2012

Вам необходимо добавить return $query к вашему one_exp методу.

EDIT

Вы устанавливаете user_id в своем представлении, но затем используете end_user в своей функции JavaScript get_experience().

Также, поскольку это json, вам нужно изменить html-заливку на

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

Для дополнительной отладки добавьте оповещение к вашему обратному вызову (прямо перед if (data.status == 'ok') добавьте alert(data);)

1 голос
/ 26 февраля 2012

Я думаю, вы должны повторить результат, а не возвращать его.

0 голосов
/ 27 февраля 2012

Я не уверен, но проблема возникает в значении end_user в js.Попробовать этотПросмотреть файл:

<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");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...