zoukankan      html  css  js  c++  java
  • 用ajax写机器人聊天的案例

    HTML 中的文档

    <body>
    <h3>简单的Ajax实例</h3>
    <div class="chatbox">
    <!-- 聊天内容 -->
    <div class="messages">
    <div class="self">
    <h5>我说</h5>
    <p>你好</p>
    </div>
    <div class="other">
    <h5>对方说</h5>
    <p>你好</p>
    </div>

    </div>
    <div class="form">
    <div class="input">
    <textarea></textarea>
    </div>
    <div class="btn">
    <input type="button" value="发送" />
    </div>
    </div>
    </div>

    <script>
    // 1. 给发送按钮添加点击事件, 点击时, 获取textarea的文本 value值
    // 2. 动态创建我说部分, 动态创建 div, 类名 self, 并添加到聊天框中
    // 3. 发送ajax请求到服务器, 服务器会返回一句话
    // 4. 根据返回的话, 动态他说部分, 动态创建 div, 类名 other, 并添加到聊天框中

    // 让滚动条, 滚动到显示这个盒子
    // 盒子.scrollIntoView(); 让滚动条显示到盒子的位置

    var btn = document.querySelector('.btn > input'); // 发送按钮
    var textarea = document.querySelector('.form textarea');
    var messages = document.querySelector('.messages');

    btn.onclick = function() {
    var value = textarea.value.trim(); // 获取值
    textarea.value = ''; // 清空内容
    if (value === '') {
    return;
    }

    // 肯定是有值的
    // 动态创建我说部分
    var div = document.createElement('div');
    messages.appendChild(div);
    div.className = 'self';
    div.innerHTML = "<h5>我说</h5><p>" + value + "</p>";
    div.scrollIntoView();

    // 发送ajax请求, 要求使用post
    var xhr = new XMLHttpRequest();
    xhr.open('post', '12.php');
    xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
    xhr.send('msg=' + value);

    // 处理响应
    xhr.onreadystatechange = function() {
    if (xhr.readyState === 4 && xhr.status === 200) {
    // 响应成功
    var result = xhr.responseText; // 获取结果

    // 动态创建他说部分
    var div = document.createElement('div');
    messages.appendChild(div);
    div.className = 'other';
    div.innerHTML = '<h5>对方说</h5><p>' + result + '</p>';

    div.scrollIntoView();

    }
    }

    }


    textarea.onkeyup = function(e) {
    if (e.keyCode === 13) {
    btn.onclick();
    }
    }
     

    </script>
    </body>
     
     
     
    php中的文档
    <?php
    // 设置字符集
    header('content-type: text/html; charset=utf-8;');

    $arr = array(
    '爱过',
    '情不知所以',
    '你妹',
    '不约',
    '你怎么穿着品如的衣服',
    '晚上有空么'
    );

    // 从数组中随机出来一个
    // array_rand(数组名, 随机出来几个下标)
    // $rand = array_rand($arr, 2);
    // print_r($rand);

    $rand = array_rand($arr, 1); // 随机的下标

    // php里面, 延时响应
    sleep(1);

    echo $arr[$rand];
    ?>
     
     
    这种可以设置一个简单的与机器人对话的过程,最基础的
  • 相关阅读:
    flex布局中transform出错
    RabbitMQ系列之Centos 7安装RabbitMQ 3.6.1
    解决windows下FileZilla server中文乱码问题
    IIS 7.5 + PHP-5.6.3 + mysql-5.6.21.1
    C# 速编神器LinqPad(新版6.5)
    一个MySql Sql 优化技巧分享
    IIS反向代理/Rewrite/https卸载配置
    zerotier 远程办公方案
    一次Mysql连接池卡死导致服务无响应问题分析(.Net Mysql.Data 6.9.9)
    ExpressCache
  • 原文地址:https://www.cnblogs.com/yeanling/p/10920071.html
Copyright © 2011-2022 走看看