Codeigniter Jquery Ajax,无法将数据从控制器访问回 html 形式

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

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

这是 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然后检查天气数据库中存在给定值,如果该值存在,我会用任何消息提醒用户

谢谢

我一直在尝试不同的选择,但最终我明白了 ,我只需要调整一些东西,比如我不必处理 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");
   }

和模型
基本上这个函数检查我们的数据库中是否包含 table 和 return 对或错;

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

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

}

希望对你有帮助
nulldev