Codeigniter Jquery Ajax,Can';t将控制器中的数据访问回html表单


Codeigniter Jquery Ajax, Can't access data from controller back to html form

am试图使用jquery ajax对codeigniter处理htmlform中的数据,但它没有返回任何值。

这是我用来处理数据的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获取数据的代码点火器控制器功能

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');
       }

但如果我在代码点火器控制器功能中尝试这个,它可以很好地工作

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;
}

我想做的主要事情是,首先处理Jquery到Codeigniter控制器的给定值(是Json对象),然后检查数据库中是否存在给定值,如果存在该值,我会用任何消息警告用户

感谢

我一直在尝试不同的选项,但最终我得到了它,我只需要调整一些事情,比如我不需要将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