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。這是一個正確的方法嗎?有沒有更簡單的方法? 謝謝你關於這件事的任何提示。
我知道我需要使用select函數,就是我不從數據庫中獲取URL ,只有在自動完成下出現的名稱。我如何結合名稱和網址,並在jQuery中正確處理它們..? – Oranges
你試過這個嗎? window.location.href =「你的網址在這裏」;所以當你有一個選擇你在這個地方給你的函數的URL,它會重定向 –
感謝您的答案,我可能不會很好地解釋自己。所選名稱的特定Url存儲在數據庫中(列名,列Url)。我如何設法找到選定名稱的特定網址?我知道我最終需要使用window.location.href,但不知道如何與Url取得聯繫。 – Oranges