最近自己做了一個小demo,實現了Ajax與MySQL的數據交互,js部分用的是jq,后臺用的是php,數據庫是mysql,過時間再來一個node+mongodb版的。
關于mysql的使用和安裝,就不多講了,自行百度xampp,Apache服務器和mysql數據庫集成,非常好用。
首先打開服務器和數據庫,我這里先建立了一個“eleven”的數據庫,下面建立了一個叫做microblog的表(請注意:我這里使用的是高版本的mysql,里面php鏈接數據庫的方法使用的都是mysqli_ 如果版本過低,請使用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請求:
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é)點
function createLi(id,content,time){
var html = $('li>p>'+content+'/p>div class="control">span>時間:'+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");
//鏈接數據庫
$link = mysqli_connect("localhost", "root", "", "eleven");
//設置數據庫編碼格式
mysqli_query($link, "set names utf8");
?>
注意:這部分我寫成了公共代碼,因為我在學習做其他東西時調用了,所以下面的代碼會有
include_once "comment.php";
這一行是引用其他代碼
?php
/*
* 開發(fā)文檔
* 1.用于提交的留言留言進行存儲
* url:http://localhost/phpStudy/ajax03/message.php
* 提交方式:get
* 提交參數說明:
* content 必須 留言板內容
* act 必須 借口標識
* 返回參數說明
* 成功:{"error":"0","id":1,"time":"2016-11-30"}
* 失?。簕"error":1,"msg":"留言失敗,請重試"}
*
* 2.up
* id 必須 留言的id編號
* act 必須 接口標識 up
* 返回聲明
* 成功:{"error":"0"}
* 失?。簕"error":"1","msg":"點贊失敗"}
*
* 3.分頁(獲取頁碼的接口);
* act 必須 接口標識 count
* 返回參數說明:
* 成功:{"error":"0","countPage":"3"};
* 失敗:{"error":"1","msg":"請求數據失敗,請重試!"}
*
* 4.分頁(點擊頁碼跳轉)
* url:http://localhost/phpStudy/ajax03/message.php
* 提交方式:get
* 提交參數說明:
* starPage 必須參數 頁碼索引值
* act 必須 接口標識 page
* 返回參數說明
* 成功:{"error":"0","data":[{},{},{},{},{}]}
* 失?。簕"error":"1","msg":"數據查詢失敗,請重試!"}
*
*/
include_once "comment.php";
$act = $_GET["act"];//接口請求標識
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);//將數組轉化為json,方便前端使用
}
else{
$arr = ["error"=>1,"msg"=>"留言失敗,請重試!"];
echo json_encode($arr);//將數組轉化為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)){//更新數據成功
echo '{"error":"0"}';
}
else{//更新失敗
echo '{"error":"1","msg":"點贊失??!"}';
}
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)){//更新數據成功
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){//刪除數據成功
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];//以索引數組形式返回查詢結果
$countPage = ceil($count/5);
echo '{"error":"0","countPage":"'.$countPage.'"}';
break;
case 'page'://點擊分頁或者是頁面第一次加載
$index = $_GET["num"]*5;
$search = "SELECT * FROM microblog ORDER BY id DESC LIMIT {$index},5";//倒敘查詢留言
$result = mysqli_query($link, $search);
$arr = [];//存查詢出來的數據
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;
}
?>
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- php+ajax制作無刷新留言板
- 本人ajax留言板的源程序 不錯的應用js
- 找到一款不錯的基于AJAX留言板源碼(PHP版、ASP版)提供下載了
- asp簡單的ajax留言板(采用三層模式)
- asp簡單的ajax留言板