返回列表 發帖
我發現資料傳到 server 端會被編碼,
許功蓋會變成 "%u8A31%u529F%u84CB" 的字串,
所以要再用以下的方式取為原字串:
$q = join('', json_decode('["'. strtr($_GET['q'], '%u', '\u') . '"]'));
To infinity and beyond!

TOP

我把我目前可運作的程式完整寄回給你看看。
所有的檔案資料都以 UTF-8 來做,
包含你原本的 autocomplete.html 也轉成 UTF-8 編碼。
To infinity and beyond!

TOP

中文輸入的部份,可能和輸入法有關係喔,我這邊看起來是都還蠻順的,不會需要左右鍵動一下才出現資料。我是用酷音和雅虎奇摩輸入法,兩個都正常。
To infinity and beyond!

TOP

很明顯啊,你的問題出在輸入時不是用 \n 換行,而是用 html 的 <br/> 換行:
Response.Write(data[a] + "<br/>");
上面這一行應該改成:
Response.Write(data[a] + "\n");
To infinity and beyond!

TOP

server 端用哪種語言應該都不是問題喔,只要正確地將資料一行一行輸出即可。

你要貼出比較完整的程式碼嗎?上面這一段看不太出來問題在哪。
To infinity and beyond!

TOP

我看了一下實做的內容,有兩個地方需要調整,第一個是 server 端輸出的資料,要改成一行一組資料的方式:
{ name: "催促揽", to: "13" }
{ name: "催送发票(底单)", to: "38" }
{ name: "催送单", to: "39" }
{ name: "(底单)", to: "43" }
再來是 client 端的部份,接到的 row 必須再處理一次:
                formatItem: function(row, i, max) {  
                        var row = eval('(' + row + ')');
                        return i + "/" + max + ": \"" + row.name + "\" [" + row.to + "]";  
                },  
                formatMatch: function(row, i, max) {  
                        var row = eval('(' + row + ')');
                        return row.name + " " + row.to;  
                },  
                formatResult: function(row) {  
                        var row = eval('(' + row + ')');
                        return row.to;  
                }  
這樣應該就可以囉...
To infinity and beyond!

TOP

$q = join('', json_decode('["'. strtr($_GET['q'], '%u', '\u') . '"]'));
這一段是:

  • 先取得 GET 傳來的 q 這個變數
  • 把 %u 轉成 /u
  • 然後前後加上方括號
  • 將 JSON 轉回 Array
  • 再把 Array 接起來轉回字串


你可以在 http://json.org/ 取得 Java 處理 JSON 的 class
To infinity and beyond!

TOP

把 defer="defer" 刪掉應該就可以囉。因為在 IE 遇到 defer="defer"  會先繼續往下執行,當執行到那一行的時候,autocomplete 這個 function 都還未載入完成,所以會出現這個訊息。
To infinity and beyond!

TOP

server 端要用 q 這個變數去接才對喔,如果沒有接到正確的文字,可以先檢查看看網頁的編碼。
To infinity and beyond!

TOP

根據官網的說明, extraParams 的用法如下:
$("#states").autocomplete(url, {
   extraParams: {
       country: function() { return $("#country").val(); }
   }
}); 
如上,可以帶入額外的 country 參數,是抓目前 id="country" 這個欄位的值
To infinity and beyond!

TOP

返回列表 回復 發帖