浏览代码

搜索结果支持翻页

visuddhinanda 4 年之前
父节点
当前提交
dd31d2e3d8
共有 4 个文件被更改,包括 36 次插入9 次删除
  1. 29 5
      app/search/paliword.js
  2. 3 1
      app/search/paliword.php
  3. 2 2
      app/search/paliword_sc.php
  4. 2 1
      app/search/search.css

+ 29 - 5
app/search/paliword.js

@@ -2,7 +2,9 @@ var dict_pre_searching = false;
 var dict_pre_search_curr_word = "";
 var dict_search_xml_http = null;
 var _key_word = "";
+var _page = 0;
 var _filter_word = new Array();
+var _bookId = new Array();
 
 $(document).ready(function () {
 	paliword_search(_key_word);
@@ -16,6 +18,7 @@ function paliword_search(keyword, words = new Array(), book = new Array()) {
 			key: keyword,
 			words: JSON.stringify(words),
 			book: JSON.stringify(book),
+			page: _page,
 		},
 		function (data) {
 			let result = JSON.parse(data);
@@ -77,7 +80,12 @@ function render_word_result(worddata) {
 	let keyword = worddata.keyword;
 
 	html += "<div class='title'>";
-	html += "<a href='../reader/?view=chapter&book=" + worddata.book + "&para=" + worddata.para + "' target='_blank'>";
+	html +=
+		"<a href='../reader/?view=chapter&book=" +
+		worddata.book +
+		"&para=" +
+		worddata.para +
+		"&direction=col' target='_blank'>";
 	html += worddata.title + "</a></div>";
 
 	let newStr = highlightWords(worddata.palitext, keyword);
@@ -126,15 +134,18 @@ function word_search_filter() {
 	});
 	filter_cancel();
 	_filter_word = wordlist;
+	_page = 0;
 	paliword_search(_key_word, wordlist);
 }
 
 function word_select(wordid) {
 	_filter_word = [wordid];
+	_page = 0;
 	paliword_search(_key_word, [wordid]);
 }
 
 function case_filter_all() {
+	_page = 0;
 	paliword_search(_key_word);
 }
 
@@ -176,15 +187,23 @@ function render_nav(result) {
 	if (result["record_count"] > 20) {
 		let pages = parseInt(result["record_count"] / 20);
 		for (let index = 0; index < pages; index++) {
-			html += "<li >" + (index + 1) + "</li> ";
+			html += "<li ";
+			if (index == _page) {
+				html += "class='curr'";
+			}
+			html += " onclick=\"gotoPage('" + index + "')\"";
+			html += ">" + (index + 1) + "</li> ";
 		}
 	}
-	html += "<li >上一页</li> ";
-	html += "<li >下一页</li> ";
+	//html += "<li >上一页</li> ";
+	//html += "<li >下一页</li> ";
 	html += "</ul>";
 	return html;
 }
-
+function gotoPage(index) {
+	_page = index;
+	paliword_search(_key_word, _filter_word, _bookId);
+}
 function onWordFilterStart() {
 	$(".case_item").children().find(".filter").show();
 	$("#case_tools").children(".filter").show();
@@ -208,9 +227,13 @@ function search_book_filter(objid, type) {
 
 //选择需要过滤的书
 function book_select(bookid) {
+	_page = 0;
+
 	if (bookid == 0) {
+		_bookId = new Array();
 		paliword_search(_key_word, _filter_word);
 	} else {
+		_bookId = [bookid];
 		paliword_search(_key_word, _filter_word, [bookid]);
 	}
 }
@@ -222,6 +245,7 @@ function book_search_filter() {
 		}
 	});
 	book_filter_cancel();
+	_page = 0;
 	paliword_search(_key_word, _filter_word, booklist);
 }
 function onBookFilterStart() {

+ 3 - 1
app/search/paliword.php

@@ -133,7 +133,9 @@ include "../pcdl/html_head.php";
 		if(isset($_GET["key"])){
 			echo " _key_word = '{$_GET["key"]}';";
 		}
-		
+		if(isset($_GET["page"])){
+			echo " _page = '{$_GET["page"]}';";
+		}		
 		?>
 	</script>
 

+ 2 - 2
app/search/paliword_sc.php

@@ -209,8 +209,8 @@ $query = "SELECT count(*) from (SELECT book FROM word WHERE \"wordindex\" in $st
 $result["record_count"] = PDO_FetchOne($query);
 $result["time"][] = array("event" => "查询记录数", "time" => microtime(true) - $_start);
 
-$query = "SELECT book,paragraph, wordindex, sum(weight) as wt FROM word WHERE \"wordindex\" in $strQueryWordId $strQueryBookId GROUP BY book,paragraph ORDER BY wt DESC LIMIT 0,20";
-$Fetch = PDO_FetchAll($query);
+$query = "SELECT book,paragraph, wordindex, sum(weight) as wt FROM word WHERE \"wordindex\" in $strQueryWordId $strQueryBookId GROUP BY book,paragraph ORDER BY wt DESC LIMIT ?,?";
+$Fetch = PDO_FetchAll($query,array($_page * $_pagesize, $_pagesize));
 $result["time"][] = array("event" => "查询结束", "time" => microtime(true) - $_start);
 $out_data = array();
 

+ 2 - 1
app/search/search.css

@@ -27,7 +27,8 @@ highlight {
 	display: inline-block;
 	cursor: pointer;
 }
-.page_nav li:hover {
+.page_nav li:hover,
+.page_nav .curr {
 	background-color: var(--link-hover-color);
 	color: var(--btn-hover-color);
 }