當用戶在下拉列表中進行選擇時,我將如何搜索SQL數據庫。我知道如何將文本更改/添加到使用JavaScript的區域,而不是使用SQL搜索。下拉選擇 - >搜索數據庫
理想情況下,我不想在這個過程中改變頁面,因爲我認爲他們不會在下拉菜單中堅持一個選項。
提前歡呼。 =)
當用戶在下拉列表中進行選擇時,我將如何搜索SQL數據庫。我知道如何將文本更改/添加到使用JavaScript的區域,而不是使用SQL搜索。下拉選擇 - >搜索數據庫
理想情況下,我不想在這個過程中改變頁面,因爲我認爲他們不會在下拉菜單中堅持一個選項。
提前歡呼。 =)
您必須將onchange
事件偵聽器添加到下拉框中。當用戶選擇一個選項時,AJAX(XmlHttpRequest)應發送到服務器。例如,服務器端腳本(例如PHP頁面)應該解析參數(在檢查之後)。
當這些參數已被檢查時,它們應該是escaped的this reason。執行搜索查詢,解析結果並將輸出發送回客戶端(用戶,瀏覽器)。
相關鏈接:
你應該看看爲此實現Ajax。
這裏有一個簡單的例子,教程利用下拉列表,從上選擇一個數據庫獲取信息,而無需改變頁面:)
http://www.w3schools.com/php/php_ajax_database.asp
你也應該考慮使用jquery爲您的Ajax請求作爲在下面的答案中說明。 (用更少的代碼做更多)。另請參閱: http://15daysofjquery.com/quick-and-dirty-ajax/14/一個簡單的jQuery Ajax教程。
請參閱:http://w3fools.com/#road-ahead – TMB
@TMB:很高興知道:)但是我相信這將幫助他理解實現ajax的基礎知識,因爲它似乎以前沒有。據說,我不會推薦從任何教程網站複製和粘貼代碼,而不進行徹底的審查。 –
@TMB + Richard除了缺乏SQL注入保護之外,w3Schools示例還會有什麼錯誤?我熱衷於找出不該做的事情,就像我想做的事一樣。 =) – Crimsonfox
沒有更多的信息我只能真正給你下面的指導。它使用jQuery加載函數將一個頁面的內容放入一個元素中。請注意,.load不能跨域使用。
$("#searchButton").live("click", function() {
$("#results").load("/SearchResults.php?s=" + $("#searchBox").val());
});
還要注意的是,你應該使用的東西過濾掉HTML標記,以防止SQL注入,以及採取其他措施。
您呈現頁面之前,請確保你做一個搶要從數據庫提交的信息。
select distinct NAME, ID
from tableName
您可以使用此處獲得的信息生成下拉框的html。包括一些效果
<select onchange="doAction(this.value);">
<option value="userID">userName</option>
<option value="userID">userName</option>
<option value="userID">userName</option>
...
</select>
然後執行AJAX request回到您的網站。從第二個查詢中獲取信息到數據庫,並返回所需的信息。當你執行你的第二個查詢時(並且一般來說)你必須保護自己免受注入攻擊媒介的攻擊。最好的開始是確保您已正確編碼(HTML,SQL)。
你使用什麼後端? ASP.NET,MVC,Django,PHP – TMB
對不起,PHP。 – Crimsonfox