2011-03-09 31 views
1

本示例中不使用search.php,如何使用python方法返回數據?例如:是否有效:$ .getJSON(「{{data}}」,term:extractLast(request.term) },response);如何更改適用於python的jquery ui自動完成功能

 $(function() { 
    function split(val) { 
     return val.split(/,\s*/); 
    } 
    function extractLast(term) { 
     return split(term).pop(); 
    } 

    $("#birds") 
     // don't navigate away from the field on tab when selecting an item 
     .bind("keydown", function(event) { 
      if (event.keyCode === $.ui.keyCode.TAB && 
        $(this).data("autocomplete").menu.active) { 
       event.preventDefault(); 
      } 
     }) 
     .autocomplete({ 
      source: function(request, response) { 
       $.getJSON("search.php", { 
        term: extractLast(request.term) 
       }, response); 
      }, 
      search: function() { 
       // custom minLength 
       var term = extractLast(this.value); 
       if (term.length < 2) { 
        return false; 
       } 
      }, 
      focus: function() { 
       // prevent value inserted on focus 
       return false; 
      }, 
      select: function(event, ui) { 
       var terms = split(this.value); 
       // remove the current input 
       terms.pop(); 
       // add the selected item 
       terms.push(ui.item.value); 
       // add placeholder to get the comma-and-space at the end 
       terms.push(""); 
       this.value = terms.join(", "); 
       return false; 
      } 
     }); 
}); 
+0

你應該把代碼添加到search.php中,也許你已經有了任何python代碼。 – itsadok 2011-03-09 06:56:41

+0

我認爲那不相關,因爲我沒有使用任何PHP設置。所以我絕對需要使用別的東西 – 2011-03-09 07:17:15

+0

也許你應該澄清你的問題。看來你問的是如何在服務器端從php切換到python。如果情況並非如此,那麼我不知道你在問什麼。 – itsadok 2011-03-09 07:28:17

回答

0

你需要讓你的python腳本爲數據數組打印一個JSON格式的字符串。我願意打賭python有一個庫可以加載對象,數組,字符串等轉換爲JSON格式的字符串。簡單地把適當的數組轉換成JSON字符串,你的JavaScript將加載它,現在你想要返回什麼,我不能從這個例子中知道。

祝你好運!

+0

Somehing like?$。getJSON(「{{tag_list}}」,{ term:extractLast(request.term) },response); – 2011-03-09 05:19:32

+0

所以在JavaScript中你應該指向一個python文件而不是一個php文件。像'search.py​​'。在該python文件中,您需要以文本方式打印JSON格式的字符串。在http://www.json.org/閱讀更多關於JSON的信息。無論您打印到「屏幕」,都會通過AJAX返回到JavaScript(包括錯誤和警告!)。 – macguru2000 2011-03-09 15:57:53

+0

對不起,如果我對最後一個有點困惑,AJAX通過調用一個外部文件來工作,這就是你的python腳本將在所有JavaScript代碼之外的東西。因此,使用javascript代碼在頁面旁邊創建一個名爲'search.py​​'的新文件,並將Python代碼放在​​那裏。 – macguru2000 2011-03-09 16:03:20

0

我使用simplejson軟件包。你沒有說你想用什麼Python框架。像這樣的東西是典型的:

JSON = simplejson.dumps(OBJ) 返回的HttpResponse(JSON, 「應用/ JSON」)

對於一個更完整的實現,你可以看看我的json.py module

相關問題