Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript W3.js html表格筛选器-onkeyup超时_Javascript_Php_Filter_Html Table_Onkeyup - Fatal编程技术网

Javascript W3.js html表格筛选器-onkeyup超时

Javascript W3.js html表格筛选器-onkeyup超时,javascript,php,filter,html-table,onkeyup,Javascript,Php,Filter,Html Table,Onkeyup,我是Javascript新手,需要帮助解决以下问题: 目前我有一个php页面,在这里我从.xml文件生成html表。它与此PHP函数一起工作: function xmlToHtmlTable($p_oXmlRoot) { $bIsHeaderProceessed = false; $sTHead = ''; $sTBody = ''; foreach ($p_oXmlRoot as $oNode) { $sTBody .= '<

我是Javascript新手,需要帮助解决以下问题: 目前我有一个php页面,在这里我从.xml文件生成html表。它与此PHP函数一起工作:

 function xmlToHtmlTable($p_oXmlRoot) {  
  $bIsHeaderProceessed = false;  

  $sTHead = '';  
  $sTBody = '';       
  foreach ($p_oXmlRoot as $oNode) {  
       $sTBody .= '<tr class=item>';  
       foreach ($oNode as $sName => $oValue){  
            if (!$bIsHeaderProceessed) {  
                 $sTHead .= "<th>{$sName}</th>";  
            }  
            $sValue = (string)$oValue;  
            $sTBody .= "<td>{$sValue}</td>";                 
       }  
       $bIsHeaderProceessed = true;  
       $sTBody .= '</tr>';  
  }  

  $sHTML = "<table id=demo border=1>  
                 <thead><tr>{$sTHead}</tr></thead>  
                 <tbody>{$sTBody}</tbody>  
            </table>";  
  return $sHTML;  
函数xmlToHtmlTable($p_oXmlRoot){
$bIsHeaderProceessed=false;
$sHead='';
$sTBody='';
foreach($p_oXmlRoot作为$oNode){
$sTBody.='';
foreach($node作为$sName=>$oValue){
如果(!$bisheaderproceed){
$sHead.=“{$sName}”;
}  
$sValue=(字符串)$oValue;
$sTBody.=“{$sValue}”;
}  
$bIsHeaderProceessed=true;
$sTBody.='';
}  
$sHTML=”
{$sHead}
{$sTBody}
";  
返回$sHTML;
生成的表相当长,我需要为其提供过滤选项。我使用w3.js filter table函数找到了满足我要求的简单解决方案。我有一个进行过滤的输入字段:

<input onkeyup="w3.filterHTML('#demo', '.item', this.value)" placeholder="Filter">

一切都很好,但速度非常慢,表格长度为+2000行,搜索正在处理键入的每个字符并刷新结果。我需要的是在2秒后执行键入的word/number/


我在这里发现了类似的问题,但我无法使其与w3.js一起工作(可能做了一些错误的事情,正如我所说,我刚刚开始使用js)。

在angularjs中有一个称为ng minlength=“2”的概念..这意味着搜索字符串至少为2个字符后才会执行搜索。所以我在javascript中做了这样的设置。不要直接调用w3 js filter函数,只在搜索字符串长度超过2时调用。希望这有帮助

    <p>
    <!--<input oninput="w3.filterHTML('#id01', '.item', this.value)" placeholder="Search for names..">-->
    <input oninput="searchFilter(this.value)" placeholder="Search for names..">
    </p>
        <script>
        function searchFilter(v) {
            var n = v.length;

            if(n>2) {
                w3.filterHTML('#id01', '.item', v);
            }
            else {
                w3.filterHTML('#id01', '.item', '');
            }
        }
    </script>

函数搜索过滤器(v){ var n=v.长度; 如果(n>2){ w3.filterHTML(“#id01”,“.item”,v); } 否则{ w3.filterHTML(“#id01”、“.item”、”; } }