Codeigniter Jquery Ajax,无法从控制器访问数据到html表单

时间:2015-02-09 12:46:16

标签: javascript php jquery ajax codeigniter

我正在尝试使用jquery ajax处理来自 htmlform 的数据到codeigniter,但它没有返回任何值。

这是用于处理数据的jquery代码

$(document).ready(function(){
    $("#chat_create_room").submit(function(){
        var chat_name = $(".chat_name").val();
        $("#response").html('<b>Fetching data...</b>');
        $.ajax({
            type: 'POST',
            url: 'site/create_chat_room',
            dataType: 'json',
            data: {chat_room_name: chat_name},
            success: function(data){
                $("#response").html(data.chat_room_name);
                $("#submit").css("display", "none");
            }
        });
        return false;
    });

这是用于从Jquery中获取数据的codeigniter控制器函数

public function create_chat_room(){
        if($this->session->userdata('logged_in')){

         $data = array(
         'chat_room_name'  => $this->input->post('chat_room_name')
         );
         $chat_room_name =  json_encode($data);
         $table_exists = $this->users->table_exists($chat_room_name);

         if($table_exists){
            echo 'Sorry the table you choose already exist!';
         }else{
            echo "<strong>".$chat_room_name."</strong> has been created!";
         }

       }else{
           $this->load->view('view_site');
       }

但是,如果我在codeigniter控制器功能中尝试这个,它可以正常工作

public function create_chat_room(){

     $data = array(
     'chat_room_name'  => $this->input->post('chat_room_name')
     );

    $chat_room_name= json_encode($data);
     echo $chat_room_name;

}

我想要的主要是,首先将给定值(,即Json对象)从Jquery处理到Codeigniter Controller,然后检查天气,数据库中是否存在给定值,如果值存在我用任何消息提醒用户

谢谢

1 个答案:

答案 0 :(得分:0)

我一直在尝试不同的选择,但最后我得到了它 ,我只需要调整一些事情,比如不用处理json到codeigniter控制器,我只需要处理普通数据。

Jquery代码

$("#chat_create_room").submit(function(){
    var chat_name = $(".chat_name");
    $("#response").html('<img src="img/ugchat_loader.GIF"/>');
    $.ajax({
        type : 'POST',
        url  : 'site/create_chat_room',
        data : chat_name,
        success : function(res){
            if(res == ""){
            $("#response").html('Nothing returned!');
        }else{
           $("#response").html(res);
        }
        }
    });
    $(".chat_name").val('');
    return false;

使用Codeigniter控制器

后,每个人都可以抓住所有东西
public function create_chat_room(){
    if($this->session->userdata('logged_in')){
      sleep(3);
     $chat_room_name = $this->input->post('chat_room_name');
     $table_exists = $this->users->table_exists($chat_room_name);
     if($table_exists){
        echo '<div class="alert alert-danger"><strong>Error</strong> Sorry the chatroom name is already taken!</div>';
     }else{
        echo '<div class="alert alert-success"><strong>Success</strong> Your chatroom has been created</div>';
     }

   }else{
       redirect(base_url()."site");
   }

模型
基本上这个函数检查我们的数据库中是否包含表 并返回true或false;

之后,我们评估结果并在控制器中测试它,然后将数据返回给我们的html

public function table_exists($table_exists){
    $tables = $this->db->table_exists($table_exists);
    if($tables){
        return true;
    }else{
        return false;
    }

}

我希望它有所帮助 的中将nulldev