dtfo55908
2016-10-17 09:19
浏览 45
已采纳

如何在codeigniter中使用ajax?

I am trying to make a very simple php chat for my website with CodeIgniter and Ajax. The messages are saved in a html file, not in a database table. Whenever I click the send button, the page refreshes, even though it's not supossed to and I don't know what's wrong. Here is my code: My controller code:

class Chat_con extends CI_Controller{

function construct(){
    parent::_construct();

}

public function index(){
    $this->load->model('login_model');

$d['info']=$this->login_model->display_user_data();//this info is sent to view to display the username of the person who is using the chat
$d['message']=$this->read_conv();
$this->load->view('chat_view',$d);
}
function write_conv() {
    $this->load->helper('directory');
        $this->load->helper('url');
        $this->load->helper('file');
        $this->path = "application" . DIRECTORY_SEPARATOR . "files"
             . DIRECTORY_SEPARATOR;
        $this->file = $this->path . "log.html";
        $m=$this->input->post('usermsg');
        $u=$this->session->userdata('username');
        write_file($this->file,"<div class='msgln'>(".date("g:i A").")     <b>".$u."</b>: ".stripslashes(htmlspecialchars($m))."<br></div>",'a');
        $this->index();

    }

    function read_conv(){
        $this->load->helper('directory');
        $this->load->helper('url');
        $this->load->helper('file');
        $this->path = "application" . DIRECTORY_SEPARATOR . "files"
             . DIRECTORY_SEPARATOR;
        $this->file = $this->path . "log.html";
        $string = read_file($this->file);
        return $string;
    }

}

Part of my view:

 <div id="chatbox">//this is the div where the messages are displayed
<?php  echo $message;  ?></div>

//this is the form
<form name="message" id="message"action="<?php echo base_url();?   
 >chat_con/write_conv" method='post'>
    <input name="usermsg" type="text" id="usermsg" size="63" /> <input
        name="submitmsg" type="submit" id="submitmsg" value="Send" />
 </form>

//The script

<script type="text/javascript">
    $(document).ready(function() {
    $("#message").submit(function(e) { 
        e.preventDefault();
        var postData = $(#message).serializeArray();
        var formActionURL = $(this).attr("action");
        $.ajax({

            url: formActionURL,
            type: "POST",
            data: postData,
         }).done(function(data) {
            alert("success");
         }).fail(function() {
            alert("error");
         }).always(function() {
            $("#submitmsg").val('submit');
        });
    });
}
</script>

3条回答 默认 最新

相关推荐 更多相似问题