2011-06-02 63 views
0

我已将Flexbox作为课程列表的自动填充解决方案实施。我只是简单地通过它从数据库中提取的课程的完整列表,以正确的JSON格式。我的印象是,当我输入时,它会考虑缩小匹配列表的范围,但是它只是打印整个列表并突出显示匹配的字符。JQuery Flexbox - 检索动态结果

我是否必须编写自己的服务器端脚本来动态缩小结果?我认为通过一个列表就足够了,因为文档特别注意到: “在所有调用”results.aspx“的示例中,数据都是一个包含105个英语单词的列表”。

感谢任何人的意见。我的代码如下:

var courseList = <?= $course_list; ?>;    

    $('#course').flexbox(courseList, { 
     initialValue : '<?= $pre_fill['course']; ?>', 
     watermark: 'Search for course/session name', 
     paging: false, 

    }); 

    $('#course_input').change(function() { 
     $('#course_hidden').val($(this).val()); 

    }); 

回答

1

我也想知道这个问题。在后端创建动态数据源后,如果我复制并粘贴数据对象的格式为:

{"results": [{"id":"key","name":"value"},...]} 

过滤按计划进行。有没有人知道与“results.aspx”页面的交易是在Flexbox主页以及为什么/如何正常工作?

编辑:

我想我至少已经知道了。在后端,您必须编写一个查询,该查询利用传回服务器的“q”参数。因此,您必须以任何您想要的方式使用命名参数“q”在后端上进行自己的过滤。对我而言,我试图过滤时间,例如:

for ($k=0;$k<=1;$k++){ 
     //AM PM 
     for ($i=1;$i<=12;$i++){ 
      //hours 
      for ($j=0;$j<=3;$j++){ 
       //minutes 
       $AMPM = "AM"; 
       $thej = ($j*15); 
       $thei = ($i); 

       if($k == 1){ 
        $AMPM = "PM"; 
       } 
       if($thej == 0){ 
        $thej = "00"; 
       } 
       if($thei != 10 && $thei !=11 && $thei !=12){ 
        $thei = "0".$thei; 
       } 
       if($q != ""){ 
        if(preg_match("/$q/i", $thei.":".$thej." ".$AMPM)){ 
         $subarray = array("id" => $thei.":".$thej." ".$AMPM, "name" => $thei.":".$thej." ".$AMPM); 
         $newarray[] = $subarray; 
        } 
       } 
       else{ 
        $subarray = array("id" => $thei.":".$thej." ".$AMPM, "name" => $thei.":".$thej." ".$AMPM); 
        $newarray[] = $subarray; 
       } 

      } 
     } 
    } 
    $finalarray = array("results"=>$newarray, "total"=>count($newarray)); 
    header('Content-type: application/json'); 
    print(json_encode($finalarray)); 

现在凌乱,但我稍后会清理它。希望这对你有用!