亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

vue+php實現的微博留言功能示例

2019-11-19 11:59:14
字體:
來源:轉載
供稿:網友

本文實例講述了vue+php實現的微博留言功能。分享給大家供大家參考,具體如下:

html部分:

<!doctype html><html><head><meta charset="utf-8"><title>微博留言</title><link href="style/weibo.css" rel="external nofollow" rel="stylesheet" type="text/css" /><script src="https://cdn.bootcss.com/vue/2.4.4/vue.min.js"></script><script src="https://cdn.bootcss.com/vue-resource/1.5.0/vue-resource.js"></script>  <style>    [v-cloak]{      display: none;    }  </style>  <script>    Vue.filter('formatDate',function (date) {      var oData = new Date(date*1000)      return oData.getFullYear()+'-'+(oData.getMonth()+1)+'-'+oData.getDate()+" "+ oData.getHours()+":"+oData.getMinutes()+":"+oData.getSeconds()    });    window.onload = function () {      var vm = new Vue({        el:'.znsArea',        data:{          userMsg:'',          msgDict:[],          url:'weibo.php',          totalPage :0,          nowpage:1        },        methods:{          add:function () {            if(this.userMsg=='') return            this.$http.get(this.url, {              params:{                'act':'add',                'content':this.userMsg              }            }).then(function (res) {              this.msgDict.unshift({                'content':this.userMsg,                'time':res.data.time,                'acc':0,                'ref':0,                'id':res.data.id              })              this.userMsg = ''            })          },          loadData:function (n) {            this.$http.get(this.url,{              params:{                'act':'get',                'page':n              }            }).then(function (res) {              this.msgDict = res.data            })          },          pageCount:function () {            this.$http.get(this.url,{              params:{                'act':'get_page_count'              }            }).then(function (res) {              this.totalPage = res.data.count            })          },          changePage:function (i) {            this.nowpage=i            this.loadData(i)          },          del:function (did) {            this.$http.get(this.url,{              params:{                act:'del',                id:did              }            }).then(function () {              for(var delitem in this.msgDict){                if(this.msgDict[delitem].id==did){                  this.msgDict.splice(this.msgDict[delitem],1)                }              }            })            this.loadData(this.nowpage)          },          acc:function (mid) {            this.$http.get(this.url,{              params:{                act:'acc',                id:mid              }            }).then(function () {              for(var item in this.msgDict){                if(this.msgDict[item].id==mid){                  this.msgDict[item].acc +=1                }              }            })          },          ref:function (mid) {            this.$http.get(this.url,{              params:{                act:'ref',                id:mid              }            }).then(function () {              for(var item in this.msgDict){                if(this.msgDict[item].id==mid){                  this.msgDict[item].ref +=1                }              }            })          }        },        created:function () {          this.loadData(1)          this.pageCount()        }      })    }  </script></head><body><div class="znsArea"><!--留言-->   <div class="takeComment">    <textarea name="textarea" class="takeTextField" id="tijiaoText" v-model="userMsg" @keydown.enter="add"></textarea>    <div class="takeSbmComment">      <input type="button" class="inputs" value="" @click="add" @keydown.enter="add"/>      <span>(可按 Enter 回復)</span>    </div>  </div><!--已留-->  <div class="commentOn">    <div class="noContent" v-show="msgDict.length==0">暫無留言</div>    <div class="messList">      <div class="reply" v-for="item in msgDict">        <p class="replyContent" v-text="item.content"></p>        <p class="operation">          <span class="replyTime" v-cloak>{{item.time|formatDate}}</span>          <span class="handle">            <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="top" v-text="item.acc" @click="acc(item.id)"></a>            <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="down_icon" v-text="item.ref" @click="ref(item.id)"></a>            <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="cut" @click="del(item.id)">刪除</a>          </span>        </p>      </div>    </div>    <div class="page">      <span v-for="i in totalPage">        <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" @click="changePage(i)" v-text="i" :class="{active:i==nowpage}"></a>      </span>    </div>  </div></div></body></html>

php部分:

<?php/***********************************************  Author:  blue@zhinengshe.com  Date:  2012-4-5  usage:      weibo.php?act=add&content=xxx  添加一條        返回:{error:0, id: 新添加內容的ID, time: 添加時間}      weibo.php?act=get_page_count  獲取頁數        返回:{count:頁數}      weibo.php?act=get&page=1    獲取一頁數據        返回:[{id: ID, content: "內容", time: 時間戳, acc: 頂次數, ref: 踩次數}, {...}, ...]      weibo.php?act=acc&id=12      頂某一條數據        返回:{error:0}      weibo.php?act=ref&id=12      踩某一條數據        返回:{error:0}  注意:  服務器所返回的時間戳都是秒(JS是毫秒)***********************************************///創建數據庫之類的$db=@mysql_connect('localhost:3307', 'root', '') or @mysql_connect('localhost', 'root', 'admin');mysql_query("set names 'utf8'");mysql_query('CREATE DATABASE zns_ajax');mysql_select_db('zns_ajax');$sql= <<< ENDCREATE TABLE `zns_ajax`.`weibo` (`ID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,`content` TEXT NOT NULL ,`time` INT NOT NULL ,`acc` INT NOT NULL ,`ref` INT NOT NULL) CHARACTER SET utf8 COLLATE utf8_general_ciEND;mysql_query($sql);//正式開始//header('Content-type:zns/json');$act=$_GET['act'];$PAGE_SIZE=6;switch($act){  case 'add':    $content=urldecode($_GET['content']);    $time=time();    $content=str_replace("/n", "", $content);    $sql="INSERT INTO weibo (ID, content, time, acc, ref) VALUES(0, '{$content}', {$time}, 0, 0)";    mysql_query($sql);    $res=mysql_query('SELECT LAST_INSERT_ID()');    $row=mysql_fetch_array($res);    $id=(int)$row[0];    echo "{/"error/": 0, /"id/": {$id}, /"time/": {$time}}";    break;  case 'get_page_count':    $sql="SELECT COUNT(*)/{$PAGE_SIZE}+1 FROM weibo";    mysql_query($sql);    $res=mysql_query($sql);    $row=mysql_fetch_array($res);    $count=(int)$row[0];    echo "{/"count/": {$count}}";    break;  case 'get':    $page=(int)$_GET['page'];    if($page<1)$page=1;    $s=($page-1)*$PAGE_SIZE;    $sql="SELECT ID, content, time, acc, ref FROM weibo ORDER BY time DESC LIMIT {$s}, {$PAGE_SIZE}";    $res=mysql_query($sql);    $aResult=array();    while($row=mysql_fetch_array($res))    {      $arr=array();      array_push($arr, '"id":'.$row[0]);      array_push($arr, '"content":"'.$row[1].'"');      array_push($arr, '"time":'.$row[2]);      array_push($arr, '"acc":'.$row[3]);      array_push($arr, '"ref":'.$row[4]);      array_push($aResult, implode(',', $arr));    }    if(count($aResult)>0)    {      echo '[{'.implode('},{', $aResult).'}]';    }    else    {      echo '[]';    }    break;  case 'acc':    $id=(int)$_GET['id'];    $res=mysql_query("SELECT acc FROM weibo WHERE ID={$id}");    $row=mysql_fetch_array($res);    $old=(int)$row[0]+1;    $sql="UPDATE weibo SET acc={$old} WHERE ID={$id}";    mysql_query($sql);    echo '{"error":0}';    break;  case 'ref':    $id=(int)$_GET['id'];    $res=mysql_query("SELECT ref FROM weibo WHERE ID={$id}");    $row=mysql_fetch_array($res);    $old=(int)$row[0]+1;    $sql="UPDATE weibo SET ref={$old} WHERE ID={$id}";    mysql_query($sql);    echo '{"error":0}';    break;  case 'del':    $id=(int)$_GET['id'];    $sql="DELETE FROM weibo WHERE ID={$id}";    //echo $sql;exit;    mysql_query($sql);    echo '{"error":0}';    break;}?>

CSS部分:

@charset "utf-8";body,ul,ol,li,dl,dt,dd,p,h1,h2,h3,h4,h5,h6,form,fieldset,table,td,img,div{margin:0;padding:0;border:0}body{font-size:12px;font-family:"Microsoft YaHei"}ul,ol{list-style-type:none}select,input,img,select{vertical-align:middle}a{text-decoration:underline;color:#313030}a{blr:expression(this.onFocus=this.blur())}input,textarea{outline:0;resize:none}a{outline:0}.znsArea{width:755px;overflow:hidden;margin:0 auto;font-family:"Microsoft YaHei"}.commentOn{width:753px;display:block;overflow:hidden;border:#a5bcff solid 1px;background:#f3f8fd;margin-top:25px;font-family:Verdana}.reply{overflow:hidden;padding:10px 20px;background:#FFF;border-top:#e9e9e9 solid 1px;border-bottom:#e9e9e9 solid 1px}.userInfo{display:block;overflow:hidden;height:25px;border-bottom:#bababa solid 1px}.userName{float:left;background:url(../img/userBj.png) left center no-repeat;padding-left:15px;color:#000;font-size:14px;font-weight:bold}.replyTime{float:left;color:#8b8585;line-height:30px;font-size:11px}.replyContent{line-height:24px;font-size:14px;color:#2b2b2b;font-family:"Microsoft YaHei"}.operation{clear:both;width:100%;height:30px;margin-top:8px}.handle{float:right;padding-top:6px}.handle a{text-decoration:none;float:left;margin-left:12px;background:url(../img/icons.png) 0 0 no-repeat;height:18px;line-height:18px;padding-left:20px}.handle .top_icon{background-position:0 0}.handle .down_icon{background-position:0 -17px}.handle .cut{background-position:0 -33px}.handle a:active{color:#09F}.noContent{text-align:center;display:block;background:#FFF;font:14px/2.3 "Microsoft YaHei";border-bottom:#e9e9e9 solid 1px;border-top:#e9e9e9 solid 1px;color:#999}.takeComment{width:713px;display:block;overflow:hidden;border:#a5bcff solid 1px;background:#f3f8fd;margin-top:25px;font-family:Verdana;padding:15px 20px}.takeTextField{width:701px;height:70px;border:#b1b1b1 solid 1px;clear:both;display:block;margin:10px 0 10px 0;line-height:20px;padding:5px;box-shadow:inset 0 0 5px #DDD;font-family:"Microsoft YaHei"}.takeSbmComment{display:block;overflow:hidden}.takeSbmComment span{float:right;color:#CCC;line-height:37px;padding-right:10px}.inputs{float:right;width:125px;height:37px;border:none 0;background:tranparent;background:url(../img/takeSbmComment.png) left top no-repeat;cursor:pointer;opacity:.8}.inputs:hover{opacity:1}.inputs:active{opacity:.9}.messList{overflow:hidden}.page{text-align:right;font-size:0;font-family:Verdana;padding:10px 16px}.page a{display:inline-block;height:20px;padding:0 7px;border:#CCC solid 1px;font:12px/20px Verdana;text-decoration:none;margin-left:5px;background:#FFF}.page a:hover{background:#09F;color:#FFF;border-color:#09F}.page .active{background:#CCC}.page a:active{opacity:.8}

希望本文所述對大家vue.js程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲成色www8888| 亚洲人成在线观看网站高清| 欧美精品18videos性欧美| 日韩精品视频在线观看网址| 韩国精品美女www爽爽爽视频| 国产69精品久久久| 精品国内自产拍在线观看| 日韩av一区二区在线| 国产精品永久免费| 亚洲成人av在线| 亚洲国产成人久久综合| 国产精品视频yy9099| 日本老师69xxx| 国产精品视频精品| 91在线免费看网站| 国产日韩欧美视频在线| 欧美亚洲成人精品| 青青久久aⅴ北条麻妃| 一本色道久久综合狠狠躁篇的优点| 91精品久久久久久综合乱菊| 成人性生交大片免费观看嘿嘿视频| 久久久欧美精品| 黄色精品一区二区| 日韩av在线免费| 97色在线观看| 亚洲iv一区二区三区| 久久久久国产精品免费| 97色在线视频| 国产欧美日韩最新| 久色乳综合思思在线视频| 亚洲精品suv精品一区二区| 九九热99久久久国产盗摄| 国产精品老牛影院在线观看| 国模视频一区二区| 国产日产久久高清欧美一区| 国产精品啪视频| 国产日韩欧美一二三区| 成人两性免费视频| 国产精品偷伦免费视频观看的| 国产在线不卡精品| 国产精品久久久久久久久久免费| 久久91精品国产91久久跳| 色yeye香蕉凹凸一区二区av| 亚洲精品99999| 久久久久久久久久久国产| 国产精品一区二区3区| 不用播放器成人网| 一区二区三区视频观看| 高清欧美性猛交xxxx| 91久久国产精品91久久性色| 欧美高清视频在线观看| 欧美日韩精品在线视频| 91成人在线视频| 亚洲人午夜精品免费| 97在线免费观看| 亚洲精选在线观看| www.日韩免费| 日本欧美爱爱爱| 国模精品视频一区二区三区| 国产99久久久欧美黑人| 日日骚av一区| 免费91在线视频| 日韩极品精品视频免费观看| 日韩中文字幕免费看| 日本欧美精品在线| 久久久中精品2020中文| 成人国产精品日本在线| 日韩最新在线视频| 国产精品成人一区| 国产91精品久久久久久| 国产精品福利观看| 亚洲全黄一级网站| 亚洲午夜未满十八勿入免费观看全集| 国产精品成人av性教育| 精品久久香蕉国产线看观看gif| 91国偷自产一区二区三区的观看方式| 欧美激情中文网| 亚洲欧美一区二区三区情侣bbw| 精品国产视频在线| 成人av电影天堂| 亚洲欧美日韩精品久久| 亚洲欧美日韩在线高清直播| 26uuu日韩精品一区二区| 26uuu另类亚洲欧美日本老年| 国产精品jvid在线观看蜜臀| 亚洲欧洲在线免费| 国产自摸综合网| 亚洲一级黄色av| 成人免费观看49www在线观看| 亚洲精品日韩在线| 国产精品久久久久久av| 国产精品视频yy9099| 九九热这里只有在线精品视| 在线亚洲午夜片av大片| 国产精品27p| 91精品国产自产在线观看永久| 日本国产精品视频| 国产精品一区二区三| 中文字幕日韩精品在线观看| 日韩亚洲成人av在线| 亚洲乱码国产乱码精品精天堂| 欧美在线观看视频| 欧美性猛交xxxx偷拍洗澡| 亚洲缚视频在线观看| 国产精品久久久久aaaa九色| 欧美性猛交99久久久久99按摩| 欧美日韩在线看| 欧美乱大交xxxxx另类电影| 国产日韩av在线| 在线播放亚洲激情| 欧美视频专区一二在线观看| 91亚洲国产成人久久精品网站| 亚洲精品视频中文字幕| 亚洲qvod图片区电影| 成人a在线观看| 日韩女优人人人人射在线视频| 国产精品视频在线播放| 91久久精品日日躁夜夜躁国产| 亚洲视频在线观看视频| 日韩精品视频三区| 精品一区二区三区电影| 亚洲free嫩bbb| 激情懂色av一区av二区av| 91美女高潮出水| 91精品视频在线| 久久久精品视频在线观看| 欧洲精品在线视频| 精品高清美女精品国产区| 国产男人精品视频| 久久视频中文字幕| 少妇av一区二区三区| 亚洲欧美日韩在线一区| 欧美日韩国产中文精品字幕自在自线| 久久精品在线播放| 欧美日韩国产限制| 97超视频免费观看| 国产精品美乳一区二区免费| 亚洲a级在线播放观看| 精品成人在线视频| 国产日韩欧美在线观看| 欧美成人中文字幕在线| 韩国19禁主播vip福利视频| 久久久精品美女| 亚洲人在线观看| 久久久亚洲福利精品午夜| 欧美激情va永久在线播放| 精品国产乱码久久久久久虫虫漫画| 成人午夜在线视频一区| 在线观看视频亚洲| 欧亚精品中文字幕| 国产欧美日韩中文字幕| 国产精品免费久久久| 国产精品第10页| 中文字幕亚洲字幕| 91禁外国网站| 亚洲高清久久久久久| 国产日韩欧美综合| 亚洲男人天堂视频| 黑人与娇小精品av专区| 91成人在线播放| 亚洲日韩欧美视频一区| 日韩精品在线视频观看| 欧美片一区二区三区| 日韩av在线播放资源|