2014-02-17 53 views
0

我希望創建一個自動完成搜索輸入,並且當用戶選擇一個項目時,他將被重定向到Web上的某個頁面。 我有一個包含名稱和網址的數據庫。到目前爲止,我已經設法從數據庫中提取名稱,並且自動完成功能確實起作用。事情是,我無法弄清楚如何使select事件與名稱的特定Url之間的連接。jQuery自動完成onselect重定向(來自數據庫的信息)

我使用asp.net:

我.ashx的文件:

public void ProcessRequest(HttpContext context) 
    { 
     context.Response.ContentType = "application/javascript"; 
     string cnString = "cnnstringlocation"; 
     string sql = "SELECT Name FROM [Table] WHERE Name LIKE '%'[email protected]+'%' "; 
     SqlCommand cmd = new SqlCommand(sql, new SqlConnection(cnString)); 
     cmd.CommandType = CommandType.Text; 
     cmd.Parameters.AddWithValue("@term", context.Request.QueryString["term"]); 
     SqlDataAdapter da = new SqlDataAdapter(cmd); 
     DataTable dt = new DataTable(); 
     da.Fill(dt); 
     string[] items = new string[dt.Rows.Count]; 
     int ctr = 0; 


     foreach (DataRow row in dt.Rows) 
     { 
      items[ctr] = (string)row["Name"]; 
      ctr++; 
     } 

     context.Response.Write(new JavaScriptSerializer().Serialize(items)); 


    } 

而自動完成的查詢(這是很簡單的,我已經做了幾次嘗試與數據庫亂搞和更改源,所以我將有機會獲得的URL太多,但沒有任何的運氣)

 $('#tags').autocomplete({ 
      source: 'Autocomplete.ashx' 

     }); 

我非常新的jQuery的,但我明白,來源應該不僅包含字符串重宣佈名稱,而且每個名稱的Url。我無法在任何地方找到正確的語法。 編輯:我想我可以製作另一個.ASHX文件,它將觸發onselect,然後返回所需的特定URL。這是一個正確的方法嗎?有沒有更簡單的方法? 謝謝你關於這件事的任何提示。

回答

0

使用select函數,然後你可以選擇在這裏後重定向是參考網址

http://api.jqueryui.com/autocomplete/#event-select

+0

我知道我需要使用select函數,就是我不從數據庫中獲取URL ,只有在自動完成下出現的名稱。我如何結合名稱和網址,並在jQuery中正確處理它們..? – Oranges

+0

你試過這個嗎? window.location.href =「你的網址在這裏」;所以當你有一個選擇你在這個地方給你的函數的URL,它會重定向 –

+0

感謝您的答案,我可能不會很好地解釋自己。所選名稱的特定Url存儲在數據庫中(列名,列Url)。我如何設法找到選定名稱的特定網址?我知道我最終需要使用window.location.href,但不知道如何與Url取得聯繫。 – Oranges