ajax+JS 實現分頁

<script type="text/javascript">
		$(function(){
			$("#titleName").val('${titleName}');
			//加載日期框
			$('#startDate').datebox({    
			    required:false   
			}); 
			$("#endDate").datebox({
				required:false
			});
			//加載數據
			var articleList = ${articleList};
			for(var i=0;i<articleList.length;i++){
				var date = new Date(articleList[i].acticleDate);
				var year = date.getFullYear();
				var month = (date.getMonth()+1)>=10?(date.getMonth()+1):"0"+date.getMonth();
				var day = date.getDate()>=10?date.getDate():"0"+date.getDate();
				var Hours = date.getHours()>=10?date.getHours():"0"+date.getHours();
				var minutes = date.getMinutes()>=10?date.getMinutes():"0"+date.getMinutes();
				var seconds = date.getSeconds()>=10?date.getSeconds():"0"+date.getSeconds();
				var strDate = year+"-"+month+"-"+day+" "+Hours+":"+minutes+":"+seconds;
		  	  	$("#titleAbstract"+i).html("<div class='titleDateByDingjd'><div class='titleByDingjd'><a style='font-size:18px;font-weight:bold;font-family:STSong;letter-spacing:2px;' href='"+articleList[i].fullHtml+"'>"+articleList[i].title+"</a></div><div class='dateByDingjd'>"+strDate+"</div></div>"+
      			"<div class='abstractByDingjd'>"+articleList[i].articleAbstract+"</div>");
		  		$("#titleAbstract"+i).show();
		  		$("#chrByDingjd"+i).show();
		  	}
		  	var count = ${count};
		  	$("#installPage").html("<div class='tiao'>共"+count+"條  第1/"+Math.ceil(count/10)+"頁  <a href='javascript:;' onclick='turnPage(0)'>首頁</a>  <a href='javascript:;' onclick='turnPage(1)'>上一頁</a>  <a href='javascript:;' onclick='turnPage(2)'>下一頁</a>  <a href='javascript:;' onclick='turnPage(3)'>尾頁</a>"+
		  						   "<input style='width:50px' id='skipPage' name='skipPage' value='1' type='text' /><button onclick=''>轉到</button></div>");
		});
		
        //點擊查詢觸發的函數
        function searchByCondition(){
        	 var titleName = $("#titleName").val();
        	 var articleAbstract = $("#articleAbstract").val();
        	 var articleSource = $("#articleSource").val();
        	 var columnId = $("#columnId").val();
        	 var startDate = $("#startDate").datebox('getValue');
        	 var endDate = $("#endDate").datebox('getValue');
        	 $.ajax({
        	 	url:'${ctx}/messageSearch.json',
        	 	data:{titleName:titleName,articleAbstract:articleAbstract,articleSource:articleSource,columnId:columnId,startDate:startDate,endDate:endDate},
        	 	type:'post',
        	 	dataType:'json',
        	 	success:function(data){
        	 		  $(".titleAbstract").hide();
        	 		  $(".chrByDingjd").hide();
	       			  //使用for循環,局部刷新數據
	       			  for(var i=0;i<data.articleList.length;i++){
	       			  	var date = new Date(data.articleList[i].acticleDate);
						var year = date.getFullYear();
						var month = (date.getMonth()+1)>=10?(date.getMonth()+1):"0"+date.getMonth();
						var day = date.getDate()>=10?date.getDate():"0"+date.getDate();
						var Hours = date.getHours()>=10?date.getHours():"0"+date.getHours();
						var minutes = date.getMinutes()>=10?date.getMinutes():"0"+date.getMinutes();
						var seconds = date.getSeconds()>=10?date.getSeconds():"0"+date.getSeconds();
						var strDate = year+"-"+month+"-"+day+" "+Hours+":"+minutes+":"+seconds;
				  	  	$("#titleAbstract"+i).html("<div class='titleDateByDingjd'><div class='titleByDingjd'><a style='font-size:18px;font-weight:bold;font-family:STSong;letter-spacing:2px;' href='"+data.articleList[i].fullHtml+"'>"+data.articleList[i].title+"</a></div><div class='dateByDingjd'>"+strDate+"</div></div>"+
		      			"<div class='abstractByDingjd'>"+data.articleList[i].articleAbstract+"</div>");
				  		$("#titleAbstract"+i).show();
				  		$("#chrByDingjd"+i).show();
	       			  }
	       			  $("#installPage").html("<div class='tiao'>共"+data.count+"條  第"+1+"/"+Math.ceil((data.count)/10)+"頁  <a href='javascript:;' onclick='turnPage(0)'>首頁</a>  <a href='javascript:;' onclick='turnPage(1)'>上一頁</a>  <a href='javascript:;' onclick='turnPage(2)'>下一頁</a>  <a href='javascript:;' onclick='turnPage(3)'>尾頁</a></div>");
	       		      $("#currentPage").val(data.smallPage);
	       		      $("#count").val(data.count);
	       	    }
        	 });
        }
        //重置
        function clearAll(){
       		$("#titleName").val("");
        	$("#articleAbstract").val("");
        	$("#articleSource").val("");
        	$("#columnId").val("");
        	$("#startDate").datebox('setValue','');
            $("#endDate").datebox('setValue','');
        }
        function turnPage(num){
        	var page = 1;//第一頁
        	var currentPage = parseInt($("#currentPage").val());//當前頁
        	var count1 = $("#count").val();//總條數
       		var countPage = Math.ceil(count1/10);//總頁數
        	if(num==0){//首頁
        		if(currentPage==1){
        			return ;
        		}else{
        			page =1;
        		}
        	}else if(num==1){//上一頁
        		if(currentPage==1){
        			return ;
        		}else{
        			page = currentPage-1;
        		}
        	}else if(num==2){//下一頁
        		if(currentPage==countPage){
        			return ;
        		}else{
        			page = currentPage+1;
        		}
        	}else if(num==3){//尾頁
        		if(currentPage==countPage){
        			return ;
        		}else{
        			page = countPage;
        		}
        	}
        	var titleName = $("#titleName").val();
        	var articleAbstract = $("#articleAbstract").val();
        	var articleSource = $("#articleSource").val();
        	var columnId = $("#columnId").val();
        	var startDate = $("#startDate").datebox('getValue');
        	var endDate = $("#endDate").datebox('getValue');
        	$.ajax({
        		url:'${ctx}/messageSearch.json',
        		data:{page:page,titleName:titleName,articleAbstract:articleAbstract,articleSource:articleSource,columnId:columnId,startDate:startDate,endDate:endDate},
        		dataType:'json',
        		type:'post',
        		success:function(data){
        			  $(".titleAbstract").hide();
        			  $(".chrByDingjd").hide();
        			  //使用for循環,局部刷新數據
        			  for(var i=0;i<data.articleList.length;i++){
        			  	var date = new Date(data.articleList[i].acticleDate);
						var year = date.getFullYear();
						var month = (date.getMonth()+1)>=10?(date.getMonth()+1):"0"+date.getMonth();
						var day = date.getDate()>=10?date.getDate():"0"+date.getDate();
						var Hours = date.getHours()>=10?date.getHours():"0"+date.getHours();
						var minutes = date.getMinutes()>=10?date.getMinutes():"0"+date.getMinutes();
						var seconds = date.getSeconds()>=10?date.getSeconds():"0"+date.getSeconds();
						var strDate = year+"-"+month+"-"+day+" "+Hours+":"+minutes+":"+seconds;
				  	  	$("#titleAbstract"+i).html("<div class='titleDateByDingjd'><div class='titleByDingjd'><a style='font-size:18px;font-weight:bold;font-family:STSong;letter-spacing:2px;' href='"+data.articleList[i].fullHtml+"'>"+data.articleList[i].title+"</a></div><div class='dateByDingjd'>"+strDate+"</div></div>"+
		      			"<div class='abstractByDingjd'>"+data.articleList[i].articleAbstract+"</div>");
				  		$("#titleAbstract"+i).show();
				  		$("#chrByDingjd"+i).show();
        			  }
        			  $("#installPage").html("<div class='tiao'>共"+data.count+"條  第"+data.smallPage+"/"+Math.ceil((data.count)/10)+"頁  <a href='javascript:;' onclick='turnPage(0)'>首頁</a>  <a href='javascript:;' onclick='turnPage(1)'>上一頁</a>  <a href='javascript:;' onclick='turnPage(2)'>下一頁</a>  <a href='javascript:;' onclick='turnPage(3)'>尾頁</a></div>");
        		      $("#currentPage").val(data.smallPage);
        		      $("#count").val(data.count);
        		}
        	});
        }
	</script>
  </head>
  
  <body>
  	<div id="dBody" align="center">
  		<%@ include file="/jsp/web/include/top.jsp" %>
  	  <div id="divAll">
	      <div id="div1">
	      	<table>
	      		<tr>
	      			<td>欄目:</td>
	      			<td>
	      				<select name="" id="columnId">
	      					<option value="">請選擇欄目</option>
	      					<c:forEach items="${columnList}" var="item" >
	      						<option value="${item.id }">${item.name }</option>
	      					</c:forEach>
	      				</select>
	      			</td>
	      			<td>來源/作者:</td>
	      			<td><input type="text" name="" id="articleSource" value=""/></td>
	      		</tr>
	      		<tr>
	      			<td>標題:</td>
	      			<td><input type="text" name="" id="titleName" value=""/></td>
	      		</tr>
	      		<tr>
	      			<td>摘要:</td>
	      			<td><input type="text" name="" id="articleAbstract" value=""/></td>
	      		</tr>
	      		<tr>
	      			<td>日期:從</td><td><input type="text" name="startDate" id="startDate" value=""/></td>
					<td>到<input type="text" name="endDate" id="endDate" value=""/></td>
					<td>
						<input type="button" value="查詢" onclick="searchByCondition()"/>
						<input type="button" value="重置" onclick="clearAll()"/>
					</td>
	      		</tr>
	      	</table>
	      </div>
	      <div id="div2">
      		<div class="titleAbstract" id="titleAbstract0"></div>
      		<hr class="chrByDingjd" id="chrByDingjd0"/>
      		<div class="titleAbstract" id="titleAbstract1"></div>
      		<hr class="chrByDingjd" id="chrByDingjd1"/>
      		<div class="titleAbstract" id="titleAbstract2"></div>
      		<hr class="chrByDingjd" id="chrByDingjd2"/>
      		<div class="titleAbstract" id="titleAbstract3"></div>
      		<hr class="chrByDingjd" id="chrByDingjd3"/>
      		<div class="titleAbstract" id="titleAbstract4"></div>
      		<hr class="chrByDingjd" id="chrByDingjd4"/>
      		<div class="titleAbstract" id="titleAbstract5"></div>
      		<hr class="chrByDingjd" id="chrByDingjd5"/>
      		<div class="titleAbstract" id="titleAbstract6"></div>
      		<hr class="chrByDingjd" id="chrByDingjd6"/>
      		<div class="titleAbstract" id="titleAbstract7"></div>
      		<hr class="chrByDingjd" id="chrByDingjd7"/>
      		<div class="titleAbstract" id="titleAbstract8"></div>
      		<hr class="chrByDingjd" id="chrByDingjd8"/>
      		<div class="titleAbstract" id="titleAbstract9"></div>
      		<hr class="chrByDingjd" id="chrByDingjd9"/>
      		<div id="installPage">
      			<div>共0條  第0/0頁  
      				<a href='javascript:;' onclick='turnPage(0)'>首頁</a>  
      				<a href='javascript:;' onclick='turnPage(1)'>上一頁</a>  
      				<a href='javascript:;' onclick='turnPage(2)'>下一頁</a>  
      				<a href='javascript:;' onclick='turnPage(3)'>尾頁</a>  
      				<input style="width:50px" id="skipPage" name="skipPage" value="" type="text" /><button onclick="">轉到</button>
   				</div>
      		</div>
      		<input type="hidden" name="currentPage" id="currentPage" value="1"/>
      		<input type="hidden" name="count" id="count" value="${count }"/>
     	  </div>
  	  </div>
  	</div>
  </body>

原理:
1.在瀏覽器上已經顯示的一個列表,使用ajax查詢數據,使用$().html,替換已有的代碼,從而達到頁面整體無刷新,局部刷新的目的!

實現步驟:
1.在jsp頁面,引用jquery,<body>中,書寫:
<div id="divTest"></div>,顯示數據區域;
2.在JS中,使用ajax,進行後臺請求數據,返回數據給前臺;(後臺根據,條件進行查詢,查出你要顯示的數據)
var str ="";
$.ajax({
url:'',
data:{},
dataType:'',
type:'',
success:function(data){
for(data.list){
//組裝string
}
alert(data.mesg);
$("#divTest").html(str);//替換已有的html
}
});

3.完成!

原理如上,我是使用div進行數據的顯示,你也可以使用<table>進行數據的顯示。

具體實例:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章