Codeigniter jquery ajax选择带滑动动画

时间:2012-03-19 10:18:31

标签: jquery ajax codeigniter

首先对不起,我是一个非常大的乞丐,我真的不明白。

我正在构建一个小型的用户,插入就可以了。

我想在插入聊天消息时,插入的消息会向下滑动,而且有点卡住了。

我的jquery

$('#chat_submit').on('click', function(e){
            e.preventDefault();
            var res = {
                'msg' : $('#chat_msg').val(),
            }

            $.ajax({
                type: 'POST',
                url: '<?php echo base_url(); ?>main/send_chat',
                data: res,
                dataType: 'json',
                success: function(data, html){
                    $('#chat_msg').removeAttr('value');

                }   
            });
            return false;
        });

html和php

<div id="content">
    <h2>Chat</h2>
            <div id="chatbox">
            <?php foreach ($chat as $ch): ?>
                <?php 
                    echo '
                        <div class="chat_post">
                            <span class="chat_time">'.date('H:i', strtotime($ch->added)).'</span>
                            <a href="'.base_url().'profile/user/'.$ch->uid.'" class="chat_name">'.$ch->first_name. " " .$ch->last_name.': </a>
                            <span class="chat_msg">'.$ch->msg.'</span>
                        </div>
                    ';
                ?>
            <?php endforeach; ?>
            </div>
            <?php echo form_open(base_url() . "main/send_chat"); ?> 
        <div id="feed_wrapp">   
            <input type="text" name="msg"  id="chat_msg">
            <input type="submit" value="Küldés" class="submit" id="chat_submit">    
        </div>
    <?php echo form_close(); ?> 
</div>

我尝试了很多方法,但我完全无能为力,可以请某人指出我错过的东西吗?

在我的控制器中发送聊天功能

function send_chat() 
    {

        $this->load->model('user/chat_model');  
        if($this->input->is_ajax_request()) 
        {
            $this->chat_model->chat_insert();   
        }   
        //redirect(base_url());
    }

和我的模型中的插入

function chat_insert()
    {
        $chat = array(
            'uid' => $this->session->userdata('uid'),
            'msg' => $this->input->post('msg')
        );

        $this->db->insert('pf_chat_post', $chat);
    }

1 个答案:

答案 0 :(得分:1)

首先修改CI控制器和模型函数,如下所示

function send_chat()
{
$succeed = false;
$this->load->model('user/chat_model');
if ($this->input->is_ajax_request()) {
    $succeeded = $this->chat_model->chat_insert();
}
if ($succeeded) {
    echo '<div class="chat_post">
                        <span class="chat_time">' . date('H:i') . '</span>
                        <a href="' . base_url() . 'profile/user/' . $this->session->userdata('uid') . '" class="chat_name">' . $this->input->post('first_name') . " " . $this->input->post('last_name') . ': </a>
                        <span class="chat_msg">' . $this->input->post('msg') . '</span>
                    </div>';
}
}

function chat_insert()
{
$chat = array(
    'uid' => $this->session->userdata('uid'),
    'msg' => $this->input->post('msg')
);
$this->db->insert('pf_chat_post', $chat);
return ($this->db->affected_rows() > 0);
}

并在表单中添加两个名为“first_name”和“last_name”的隐藏输入

 <input type="hidden" name="first_name" value="database value" />
 <input type="hidden" name="last_name"  value="database value" />

然后在$ .ajax调用的成功函数中添加以下内容:

$("#chatbox").append(data);