佳木斯湛栽影视文化发展公司

主頁 > 知識(shí)庫 > Ajax與mysql數(shù)據(jù)交互制作留言板功能(全)

Ajax與mysql數(shù)據(jù)交互制作留言板功能(全)

熱門標(biāo)簽:阿里云 銀行業(yè)務(wù) Mysql連接數(shù)設(shè)置 服務(wù)器配置 電子圍欄 團(tuán)購網(wǎng)站 科大訊飛語音識(shí)別系統(tǒng) Linux服務(wù)器

最近自己做了一個(gè)小demo,實(shí)現(xiàn)了Ajax與MySQL的數(shù)據(jù)交互,js部分用的是jq,后臺(tái)用的是php,數(shù)據(jù)庫是mysql,過時(shí)間再來一個(gè)node+mongodb版的。

關(guān)于mysql的使用和安裝,就不多講了,自行百度xampp,Apache服務(wù)器和mysql數(shù)據(jù)庫集成,非常好用。

首先打開服務(wù)器和數(shù)據(jù)庫,我這里先建立了一個(gè)“eleven”的數(shù)據(jù)庫,下面建立了一個(gè)叫做microblog的表(請(qǐng)注意:我這里使用的是高版本的mysql,里面php鏈接數(shù)據(jù)庫的方法使用的都是mysqli_  如果版本過低,請(qǐng)使用mysql_ 方法,自行修改代碼)
以下是代碼部分:

html頁面和js部分:

!DOCTYPE html> 
html> 
  head> 
    meta charset="UTF-8"> 
    title>微博留言板/title> 
    style type="text/css"> 
      *{ 
        margin: 0; 
        padding: 0; 
      } 
      #box{ 
        width: 600px; 
        /*height: 500px;*/ 
        border: 2px solid rgb(85,85,85); 
        border-radius: 15px; 
        margin: 50px auto; 
        padding: 20px 10px 15px; 
        background-color: rgb(85,85,85); 
      } 
      #content{ 
        display: block; 
        resize: none; 
        width: 550px; 
        height: 200px; 
        margin: 0 auto; 
        border: 2px solid rgb(225,225,225); 
        border-radius: 10px; 
        text-align: center; 
        font-size: 30px; 
        background-color: rgb(225,225,225); 
      } 
      #content:focus{ 
        outline: none; 
        border: 2px solid rgb(225,225,225); 
        box-shadow: 0 0 15px rgb(225,225,225); 
      } 
      #btn{ 
        border: 2px solid rgb(255,204,0); 
        width: 80px; 
        height: 40px; 
        border-radius: 5px; 
        margin-top: 30px; 
        font-size: 17px; 
        cursor: pointer; 
        outline: none; 
        background-color: rgb(255,204,0); 
      } 
       
      .list{ 
        list-style: none; 
        background-color: rgb(249,249,249); 
        margin-top: 20px; 
      } 
      .list>li{ 
        padding: 20px 10px 10px; 
        border-bottom: 2px solid rgb(68,68,68); 
        font-size: 20px; 
        color: rgb(200,214,225); 
        position: relative; 
        word-break: break-word; 
        word-wrap: break-word; 
        background-color: rgb(85,85,85); 
         
      } 
      .list>li>.control{ 
        position: absolute; 
        bottom: 3px; 
        right: 5px; 
        font-size: 14px; 
      } 
      .list>li>p{ 
        margin-bottom: 25px; 
      } 
      .control span,.control em{ 
        display: inline-block; 
        margin-right: 15px; 
      } 
      .control em{ 
        color: darkblue; 
        cursor: pointer; 
      } 
      a{ 
        text-decoration: none; 
        color: darkred; 
      } 
      #page>a{ 
        display:inline-block; 
        width: 40px; 
        height: 30px; 
        margin-top: 10px; 
        text-align: center; 
        line-height: 30px; 
        font-size: 20px; 
        border-radius: 5px; 
        color: white; 
        background-color: rgb(51,21,70); 
      } 
      #head{ 
        color: rgb(200,214,225); 
        font-size: 30px; 
        height: 50px; 
        border-bottom: 2px solid rgb(68,68,68); 
        margin-bottom: 20px; 
      } 
    /style> 
  /head> 
  body> 
    div id="box"> 
      div id="head"> 
        留言板 
      /div> 
      div id="fill_in"> 
        textarea id="content">/textarea> 
        button id="btn">提交留言/button> 
      /div> 
      !--留言列表--> 
      div id="message_text"> 
        ul class="list"> 
        /ul> 
      /div> 
      !--分頁--> 
      div id="page"> 
        a href="javasript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" >1/a> 
        a href="javasript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" >2/a> 
      /div> 
    /div> 
  /body> 
  script src="Jq/jquery-3.1.1.min.js"> 
/html> 

代碼顯示不完,下面是php部分代碼。
接01部分,jq的ajax請(qǐng)求:

script type="text/javascript"> 
    $(function(){ 
      $("#btn").on("click",function(){ 
        if ($("#content").val() == "") { 
          alert("~~客官,說一句再走唄~~"); 
          return; 
        }  
        else{ 
          $.ajax({ 
            type:"get", 
            url:"http://localhost/phpStudy/ajax03/message.php", 
            async:true, 
            dataType:"json", 
            data:{ 
              content:$("#content").val(), 
              act:"add" 
            }, 
            success:function(data){ 
//             var result = JSON.parse(data); 
              if (data.error==0) { 
                createLi(data.id,$("#content").val(),data.time); 
              } else{ 
                alert(data.msg); 
              } 
            } 
          }); 
        } 
         
      }); 
       
      //創(chuàng)建節(jié)點(diǎn) 
      function createLi(id,content,time){ 
        var html = $('li>p>'+content+'/p>div class="control">span>時(shí)間:'+time+'/span>頂:em>0/em>踩:em>0/em>a class="remove" href="javasript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" >刪除/a>/div>/li>'); 
          $(".list").prepend(html); 
          var h = html.height(); 
          html.height(0); 
          html.stop().animate({ 
            height:h 
          },300); 
          //刪除 
          html.find(".remove").on("click",function(){ 
            html.stop().animate({ 
              height:0 
            },300,function(){ 
              html.remove(); 
            }) 
          }); 
      } 
    }) 
  /script> 

這部分是php代碼部分:

?php 
  header("Content-type:text/html;charset=utf8"); 
   date_default_timezone_set("PRC"); 
   //鏈接數(shù)據(jù)庫 
   $link = mysqli_connect("localhost", "root", "", "eleven"); 
   //設(shè)置數(shù)據(jù)庫編碼格式 
   mysqli_query($link, "set names utf8"); 
?> 

注意:這部分我寫成了公共代碼,因?yàn)槲以趯W(xué)習(xí)做其他東西時(shí)調(diào)用了,所以下面的代碼會(huì)有

include_once "comment.php"; 

這一行是引用其他代碼

?php 
  /* 
   * 開發(fā)文檔 
   * 1.用于提交的留言留言進(jìn)行存儲(chǔ) 
   * url:http://localhost/phpStudy/ajax03/message.php 
   * 提交方式:get 
   * 提交參數(shù)說明: 
   * content 必須 留言板內(nèi)容 
   * act 必須 借口標(biāo)識(shí) 
   * 返回參數(shù)說明 
   * 成功:{"error":"0","id":1,"time":"2016-11-30"} 
   * 失敗:{"error":1,"msg":"留言失敗,請(qǐng)重試"} 
   * 
   * 2.up 
   * id 必須 留言的id編號(hào) 
   * act 必須 接口標(biāo)識(shí) up 
   * 返回聲明 
   * 成功:{"error":"0"} 
   * 失?。簕"error":"1","msg":"點(diǎn)贊失敗"} 
   * 
   * 3.分頁(獲取頁碼的接口); 
   * act 必須 接口標(biāo)識(shí) count 
   * 返回參數(shù)說明: 
   * 成功:{"error":"0","countPage":"3"}; 
   * 失?。簕"error":"1","msg":"請(qǐng)求數(shù)據(jù)失敗,請(qǐng)重試!"} 
   * 
   * 4.分頁(點(diǎn)擊頁碼跳轉(zhuǎn)) 
   * url:http://localhost/phpStudy/ajax03/message.php 
   * 提交方式:get 
   * 提交參數(shù)說明: 
   * starPage 必須參數(shù) 頁碼索引值 
   * act 必須 接口標(biāo)識(shí) page 
   * 返回參數(shù)說明 
   * 成功:{"error":"0","data":[{},{},{},{},{}]} 
   * 失敗:{"error":"1","msg":"數(shù)據(jù)查詢失敗,請(qǐng)重試!"} 
   * 
   */ 
   include_once "comment.php"; 
   $act = $_GET["act"];//接口請(qǐng)求標(biāo)識(shí) 
   switch ($act) { 
    case 'add'://提交留言 
      $content = $_GET["content"]; 
      $time = time(); 
      $times = date("Y-m-d H:i:s",$time); 
      $query = "INSERT INTO microblog(id,content,time) VALUES(null,'{$content}','{$times}')"; 
      mysqli_query($link,$query); 
      $insertId = mysqli_insert_id($link); 
      if($insertId>0){ 
        $arr = ["error"=>0,"id"=>$insertId,"time"=>$times]; 
        echo json_encode($arr);//將數(shù)組轉(zhuǎn)化為json,方便前端使用 
      } 
      else{ 
        $arr = ["error"=>1,"msg"=>"留言失敗,請(qǐng)重試!"]; 
        echo json_encode($arr);//將數(shù)組轉(zhuǎn)化為json,方便前端使用 
      } 
      break; 
       
    case 'up': 
      $id = $_GET['id']; 
      $search = "SELECT up FROM microblog WHERE id = $id"; 
      $result = mysqli_query($link, $search); 
      $upNum = mysqli_fetch_row($result)[0]; 
      $upNum++; 
      $query = "UPDATE microblog SET up='{$upNum}' WHERE id = '{$id}'"; 
      mysqli_query($link,$query); 
      if(mysqli_affected_rows($link)){//更新數(shù)據(jù)成功 
        echo '{"error":"0"}'; 
      } 
      else{//更新失敗 
        echo '{"error":"1","msg":"點(diǎn)贊失??!"}'; 
      } 
      break; 
       
    case 'down': 
      $id = $_GET['id']; 
      $search = "SELECT down FROM microblog WHERE id = $id"; 
      $result = mysqli_query($link, $search); 
      $downNum = mysqli_fetch_row($result)[0]; 
      $downNum++; 
      $query = "UPDATE microblog SET down='{$downNum}' WHERE id = '{$id}'"; 
      mysqli_query($link,$query); 
      if(mysqli_affected_rows($link)){//更新數(shù)據(jù)成功 
        echo '{"error":"0"}'; 
      } 
      else{//更新失敗 
        echo '{"error":"1","msg":"踩失?。?}'; 
      } 
      break;  
    case 'remove': 
      $id = $_GET['id']; 
      $query ="DELETE FROM microblog WHERE id='{$id}'"; 
      mysqli_query($link,$query); 
      if(mysqli_affected_rows($link)>0){//刪除數(shù)據(jù)成功 
        echo '{"error":"0"}'; 
      } 
      else{ 
        echo '{"error":"1","msg":"刪除失??!"}'; 
      } 
      break; 
    case 'count'://返回總頁碼 
      $query = "SELECT count(id) FROM   microblog"; 
      $result = mysqli_query($link, $query); 
      $count = mysqli_fetch_row($result)[0];//以索引數(shù)組形式返回查詢結(jié)果 
      $countPage = ceil($count/5); 
      echo '{"error":"0","countPage":"'.$countPage.'"}'; 
      break;  
    case 'page'://點(diǎn)擊分頁或者是頁面第一次加載 
      $index = $_GET["num"]*5; 
      $search = "SELECT * FROM microblog ORDER BY id DESC LIMIT {$index},5";//倒敘查詢留言 
      $result = mysqli_query($link, $search); 
      $arr = [];//存查詢出來的數(shù)據(jù) 
      while($row = mysqli_fetch_assoc($result)){ 
        array_unshift($arr,$row); 
      } 
//     print_r($arr); 
//     {"error":"0","info":[{},{},{},{},{}]} 
      $resultArr = ["error"=>"0","info"=>$arr]; 
      echo json_encode($resultArr); 
      break; 
     
   } 
?>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • php+ajax制作無刷新留言板
  • 本人ajax留言板的源程序 不錯(cuò)的應(yīng)用js
  • 找到一款不錯(cuò)的基于AJAX留言板源碼(PHP版、ASP版)提供下載了
  • asp簡(jiǎn)單的ajax留言板(采用三層模式)
  • asp簡(jiǎn)單的ajax留言板

標(biāo)簽:衢州 衡水 江蘇 大理 棗莊 蚌埠 萍鄉(xiāng) 廣元

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Ajax與mysql數(shù)據(jù)交互制作留言板功能(全)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    怀安县| 淳化县| 渝中区| 积石山| 新河县| 墨竹工卡县| 光泽县| 郑州市| 德令哈市| 晋江市| 东乌珠穆沁旗| 库车县| 灵石县| 瓮安县| 行唐县| 东乡族自治县| 海盐县| 宁晋县| 和政县| 内丘县| 双峰县| 扎兰屯市| 镇远县| 林周县| 黑山县| 扶风县| 堆龙德庆县| 瑞安市| 保山市| 泸定县| 车险| 大埔县| 宁都县| 屏东县| 米易县| 开原市| 庆元县| 通城县| 济源市| 塘沽区| 徐州市|