ajax评论案例

 bootstrap、form表单得使用

把发表评论得区域变成一个表单

 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <script src="04.js"></script>
</head>

<body style="padding:15px">
    <!-- 评论面板 -->
    <div class="panel panel-primary">
        <div class="panel-heading">
            <h3 class="panel-title">发表评论</h3>
        </div>
        <!-- 用表单来采集数据name不能乱写,采集到得数据要提交到api中 -->
        <form class="panel-body" id="formAddCmt">
            <div>评论人:</div>
            <input type="text" placeholder="请输入评论人" class="form-control" name="username">
            <div>评论内容:</div>
            <textarea class="form-control" name="content"></textarea>
            <button type="submit" class="btn btn-primary">发表评论</button>
        </form>
    </div>
    <!-- 评论列表 -->
    <ul class="list-group">
        <li class="list-group-item">
            <span class="badge" style="background-color: rgb(229, 167, 11);">评论时间:</span><span class="badge" style="background-color: rgb(13, 217, 244);">评论人:</span> 24*7 支持
        </li>
    </ul>

</body>

</html>
window.onload = function() {
    $(function() {
        //获取评论列表得数据,需要用到ajax来请求api接口
        function getCommentList() {
            $.ajax({
                method: 'GET',
                url: 'http://www.liulongbin.top:3006/api/cmtlist',
                data: {},
                success: function(res) {
                    if (res.status !== 200) return alert('获取评论列表失败')
                    console.log(res);
                    console.log('获取成功');
                    //获取成功之后,需要把获取出来得数据渲染到页面中得评论列表中,因为有很多数据
                    var rows = []
                    $.each(res.data, function(i, item) { //循环拼接字符,i是属性名,item就是属性值,每循环一次,都会执行function回调函数一次,注意在字符串中是不允许回调换行得。每循环一次生成一次li得字符串,在添加到ul中。
                        rows.push('<li class="list-group-item"><span class="badge" style="background-color: rgb(229, 167, 11);">评论时间:' + item.time + '</span><span class="badge" style="background-color: rgb(13, 217, 244);">评论人:' + item.username + '</span> ' + item.content + '</li>')
                    })
                    $('.list-group').empty().append(rows.join(''))
                }
            })
        }
        getCommentList()
            //添加评论,监听表单
        $('#formAddCmt').submit(function(e) {
            e.preventDefault()
                //阻止完毕后要快速获取表单元素
            var data = $('#formAddCmt').serialize()
            console.log(data);
            //发起ajax,post请求提交数据
            $.ajax({
                method: 'POST',
                url: 'http://www.liulongbin.top:3006/api/addcmt',
                data: data, //好像会对data进行自动分隔出属性名和属性值。
                //需要请求得数据,就是上面从表单中获取过来得数据
                success: function(res) {
                    console.log(res);
                    if (res.status != 201) {
                        alert('发表失败')
                    } else { //说明发表评论成功
                        //刷新评论列表
                        getCommentList()
                            //清空内容 $('#formAddCmt')[0]将jquery对象转换成原生dom对象
                            // $('.form-control').val('')(如果一个表单里面有很多内容得时候)太麻烦了,直接获取form表单调用reset清空
                        $('#formAddCmt')[0].reset()
                    }
                }
            })
        })
    })
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一夕ξ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值