搜索时如何限制异步显示结果?

时间:2016-10-01 20:44:56

标签: javascript php search asynchronous delimiter

我正在做一个个人博客,最近因为这个小问题已经停止了...对我来说是一个挑战,所以...我希望你能帮助我们

我想做的是;对我在搜索时获得的结果设置了某种限制,这是因为这些结果是在输入时异步加载的,所以...如果我搜索的内容超过100(例如),滚动会太长,所以我想做的是让某些'加载更多按钮'允许用户加载更多结果,如果他想...我怎么能这样做?

这是我到目前为止所做的代码......

HTML:

<input type="text" id="busqueda"  name="busqueda" value="" required autocomplete="off" onKeyUp="search();">
<div id="result"></div>
<button id="loadmore"> load more</button>

PHP:

<?php
//connect to db
require('db_conexion.php');  

$consultaBusqueda = $_POST['valorBusqueda'];

if (isset($consultaBusqueda)) {
//sanitize post value
$page_number = filter_var($_POST["page"], FILTER_SANITIZE_NUMBER_INT, FILTER_FLAG_STRIP_HIGH);
//throw HTTP error if page number is not valid
if(!is_numeric($page_number)){
  header('HTTP/1.1 500 Invalid page number!');
  exit();
}
//capacity
$item_per_page = 5;

//get current starting point of records
$position = (($page_number-1) * $item_per_page);

//query
$buscar= $conexion->query("SELECT info from table ORDER BY id DESC LIMIT $position,$item_per_page");

//conditionals
    if (!$query_execute->num_rows) {
        $mensaje = "no results";
    }else{
        $filas= $query_execute->num_rows;
        echo $filas.' Results for <mark>'.$consultaBusqueda.'</mark>';

//show results 
while($row = $buscar->fetch_array()) {
            $variable="something";      
            echo $variable;
        }
    } 
}else{
echo "Error";
}    
?>

JS:

function stopRKey(evt) {
var evt = (evt) ? evt : ((event) ? event : null);
var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
if ((evt.keyCode == 13) && (node.type=="text")) {return false;}
}
document.onkeypress = stopRKey;

function search() {
    var textoBusqueda = $("input#busqueda").val();

     if (textoBusqueda != "") {
       $("#resultadoBusqueda").show();
        $.post("actions/search.php", {valorBusqueda: textoBusqueda}, function(menssage) {
            $("#resultadoBusqueda").html(menssage);
         }); 
     } else { 
        $("#resultadoBusqueda").html("");
        };
};

这里有页面,以便您了解工作正确的方法

http://www.subeuna.com/blog/

所有你必须做的事情,搜索什么,什么......你会看到......我真的需要你的帮助,我希望你的回答:(

1 个答案:

答案 0 :(得分:0)

您可能会考虑让后端api仅返回最大数量的结果,如果超过该数量,则提供一个属性来获取更多。如果存在该额外属性,则加载更多按钮,否则不会。

API pagination best practices