1. 程式人生 > >jsp做的一個簡易留言板功能

jsp做的一個簡易留言板功能

cti var llb onload 計算 bst image message html

1.先登錄才能留言

2.可以留言

3.可以回復

4.自己寫的留言可以自己刪除

5.留言進行分頁顯示,避免留言只能顯示一部分

1.登錄後會有

技術分享

2.寫留言

技術分享

提交按鈕在你沒寫東西前是不能提交的,用了onkeyup()方法

技術分享

提交後馬上顯示在留言列表,ajax技術

技術分享

相關代碼:

function sendtext(){
var text1=form1.textfield.value;
if(text1!=""){
createRequest1("insert1.jsp?textfield="+encodeURI(text1));
}
}
function createRequest1(url){
http_request=new XMLHttpRequest();
http_request.onreadystatechange=function(){
if(http_request.readyState==4){
if(http_request.status==200){
document.getElementById("textfield").value="";
document.getElementById("display1").innerHTML=http_request.responseText+document.getElementById("display1").innerHTML;
}else{
alert("error");

}
}
}
http_request.open("POST",url,true);
http_request.send(null);
}

//後臺直接返回

技術分享

刷新後會否回復與刪除功能,

技術分享

相關代碼:

刷新頁面後,在後來用select語言從數據庫中找出

技術分享

然後在前臺獲取

技術分享

//刪除回復部分代碼

"<input type=‘button‘ id=‘show‘ value=‘回復‘ onclick=show1("+rs.getString(1)+") style=‘width:50px;height:20px;padding:0;border-radius:15px;box-shadow: 1px 1px 1px #888888‘>"+"<input type=‘button‘ value=‘刪除‘ style=‘width:50px;height:20px;background-color:#90ee90;padding:0;border-radius:15px;box-shadow: 1px 1px 1px #888888‘ onclick=‘delete1("+rs.getString(1)+")‘>"

換一個用戶登錄

技術分享

技術分享

可以看到別人寫的是不能刪除的只有自己寫的才能刪除

技術分享

用了if語句判斷

3,回復

點擊回復會有下拉框,這是用js實現的

技術分享

技術分享

提交後直接顯示

相關代碼

function replay1(id1,id2,id3){
var text1=document.getElementById(id2);
var text2=text1.value
var name=‘<%=message1%>‘
document.getElementById(id3).innerHTML="<font color=‘saddlebrown‘ font size=‘4px‘>"+"回復者:"+name+"</font>"+"<br>"+document.getElementById(id2).value+"<br>"+document.getElementById(id3).innerHTML;
createRequest4("reply1.jsp?id1="+id1+"&text1="+text2);

}

刷新後效果

技術分享

4.刪除

技術分享

刪除後直接消失

前段實現代碼:

技術分享

後臺實現代碼

技術分享

5.分頁

技術分享

首先寫好分頁規則

function page(opt){//編寫分頁規則
if(!opt.id){return false};
var obj=document.getElementById(opt.id);
var nowNum=opt.nowNum||1;
var allNum=opt.allNum||5;
var callBack = opt.callBack || function(){};
if(nowNum>=4&&allNum>=6){
var oA=document.createElement(‘a‘);
oA.href="#1";
oA.innerHTML=‘首頁‘;
obj.appendChild(oA);
}
if(nowNum>=2){
var oA=document.createElement(‘a‘);
oA.href="#"+(nowNum-1);
oA.innerHTML=‘上一頁‘;
obj.appendChild(oA);
}

if(allNum<=5){
for(var i=1;i<=allNum;i++){
var oA=document.createElement(‘a‘);
oA.href="#"+i;
if(nowNum==i){
oA.innerHTML=i;
}else{
oA.innerHTML=‘[‘+i+‘]‘;
}
obj.appendChild(oA);
}
}else{
for(var i=1;i<=5;i++){
var oA=document.createElement(‘a‘);
if(nowNum==1||nowNum==2){
oA.href="#"+i;
if(nowNum==i){oA.innerHTML=i;
}else{
oA.innerHTML=‘[‘+i+‘]‘;
}

}else if((allNum-nowNum)==0||(allNum-nowNum)==1){
oA.href="#"+(allNum-5)+i;
if(((allNum-nowNum)==0)&&i==5){
oA.innerHTML=((allNum-5)+i);
}else if((allNum-nowNum)==1&&i==4){
oA.innerHTML=((allNum-5)+i);
}else{
oA.innerHTML=‘[‘+((allNum-5)+i)+‘]‘;
}

}else{
oA.href="#"+(nowNum-3+i);
if(i==3){
oA.innerHTML=(nowNum-3+i);
}else{
oA.innerHTML=‘[‘+(nowNum-3+i)+‘]‘;
}

}
obj.appendChild(oA);
}
}
if(allNum-nowNum>=1){
var oA = document.createElement(‘a‘);
oA.href = ‘#‘ + (nowNum+1);
oA.innerHTML = "下一頁";
obj.appendChild(oA);
}

if((allNum-nowNum)>=3 && allNum>=6){
var oA = document.createElement(‘a‘);
oA.href="#"+(allNum);
oA.innerHTML=‘尾頁‘;
obj.appendChild(oA);
}

callBack(nowNum,allNum);

var aA=obj.getElementsByTagName(‘a‘);
for(var i=0;i<aA.length;i++){
aA[i].onclick = function(){
var nowNum = parseInt(this.getAttribute(‘href‘).substring(1));
obj.innerHTML = "";
page({
id : opt.id,
nowNum : nowNum,
allNum : allNum,
callBack : callBack
});
};
}
}

//然後去數據庫裏吧所有的留言都獲取一下,計算要獲得多少頁

技術分享

//再把頁數之傳回

window.onload=function(){ //得到總共分為幾頁
createRequest("serchcount.jsp");
}
function createRequest(url){
http_request=new XMLHttpRequest();
http_request.onreadystatechange=function(){
if(http_request.readyState==4){
if(http_request.status==200){
var count2=http_request.responseText;//把得到的頁數存入到count2中
fenye(count2);//把參數傳給fenye()這個方法中
}else{
alert("error");
}
}
}
http_request.open("POST",url,true);
http_request.send(null);
}

//把相應的值傳到可以調用分頁規的函數中

function fenye(count2){
page({
id:‘div1‘,//div名稱
nowNum: 1,//開始值
allNum : count2,//總共值
callBack : function(now,all){
serch1(now);}

});
}

//把當前頁的也屬傳到後臺數據庫中,一頁頁的找

技術分享

後臺數據庫的查找,後臺去執行,並返回值

技術分享

jsp做的一個簡易留言板功能