【问题标题】:JQuery Flexbox - Retrieving dynamic resultsJQuery Flexbox - 检索动态结果
【发布时间】:2011-06-17 05:02:47
【问题描述】:

我已将 Flexbox 实现为课程列表的自动完成解决方案。我只是以正确的 JSON 格式向它传递了从数据库中获取的课程的完整列表。我的印象是它会在我键入时缩小匹配列表,但它只是打印整个列表并突出显示匹配的字符。

我是否必须编写自己的服务器端脚本以在我键入时动态缩小结果范围?我认为传递一个列表就足够了,因为文档特别指出: “在所有调用“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());

    });

【问题讨论】:

    标签: jquery autocomplete flexbox


    【解决方案1】:

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

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

    过滤按计划进行。有谁知道 Flexbox 主页上“results.aspx”页面的处理方式以及它为什么/如何正常工作?

    编辑:

    我想至少我自己想通了。在后端,您必须编写一个查询,该查询利用传递回服务器的“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));
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-27
      • 1970-01-01
      • 1970-01-01
      • 2012-03-31
      • 2012-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多