2011-06-02 58 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)); 

現在凌亂,但我稍後會清理它。希望這對你有用!