加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP jquery ajax完成即时聊天功能

发布时间:2022-02-19 11:05:22 所属栏目:PHP教程 来源:互联网
导读:这是一个简单的利用jquery与php做的一个聊天室的源码,我们这里定时利用ajax读取数据库并进行刷新了,下面直接参上源码,实例代码如下: send:function(){ chat.btn_status._false(); $.getJSON(send.php,{ txt:$(#my_chat).val(), type:l },function(data){ i
  这是一个简单的利用jquery与php做的一个聊天室的源码,我们这里定时利用ajax读取数据库并进行刷新了,下面直接参上源码,实例代码如下:
    send:function(){
    chat.btn_status._false();
    $.getJSON('send.php',{
     txt:$('#my_chat').val(),
     type:'l'
    },function(data){
     if(data.status==200){
      chat.btn_status._false();
      $('#my_chat').val('');
      setTimeout(function(){
       chat.btn_status._true();
      },2000);
     }
    });
   },
   socket:function(){
    $.getJSON('data.php',{
     action:'while',
     type:'l'
    },function(data){
     $('#mwebtime').html(data.time);
     $('#chat textarea').val(data.chat);
     $('#chat textarea').stop(true,true).animate({scrollTop:9999}, 1);  
     chat.socket();
    });
   },
   btn_status:{
    _false:function(){
     $('#chat_btn').html('等待').attr('disabled',true);
    },
    _true:function(){
     $('#chat_btn').html('发言').attr('disabled',false);
    }
   }
  }
  chat.init();
  </script>
  </head>
    
  <body>
  <div id="chat">
   <textarea wrap="physical" style="line-height:20px;font-size:12px;height:100px;width:200px;"></textarea>
   <BR />
   <input id="my_chat" type="text" />
   <button id="chat_btn" disabled="disabled">发言</button>
  </div>
  <div id="mwebtime"></div>
  </body>
  </html>
  data.php
  <?php
  header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");  
  header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");  
  header("Cache-Control: no-cache, must-revalidate");  
  header("Pramga: no-cache");
  set_time_limit(0);
  $get = $_GET['action'];
  $type = $_GET['type'];
  $file = $type.'.txt';
  if(isset($get) && isset($type) && file_exists($file)){
   switch($get){
    case 'first':
     $chat = file_get_contents($file);
     $json=array(
      'status' => 200,
      'time' => gmdate("s"),
      'chat' => $chat,
     );
     echo json_encode($json);
     break; www.Cuoxin.com
    case 'while':
     $oldsize = filesize($file);
     $newsize = filesize($file);
     while(true){
      if($oldsize!=$newsize){
       $chat = file_get_contents($file);
       $json=array(
        'status' => 200,
        'time' => gmdate("s"),
        'chat' => $chat,
       );
       echo json_encode($json);
       exit;
      }
      clearstatcache();
      $newsize = filesize($file);
      usleep(10000);
     }
     break;
   }
  }
  ?>
  send.php
  <?php
  $json = array();
  $txt = isset($_GET['txt'])?$_GET['txt']:'';
  $type = isset($_GET['type'])?$_GET['type']:'';
  if($txt!=''){
   $file = $type.".txt";
   if(file_exists($file)){
    $fp = fopen($file,"a");
    $str = "rn".'Admin:'.$txt;
    //$str = $txt."n"//linux;
    fwrite($fp, $str);
    fclose($fp);
    $json['status']=200;
    echo json_encode($json);
    exit;
   }
  }
  ?>
 

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读