我正在修改別人的代碼,並且遇到了一個我似乎無法解決的問題。在數據庫中,我們有商店位置和五種類型的產品。如果某個地點銷售產品,則數據庫值爲「X」。如果不是,則數據庫值爲空。我正在修改的應用程序有一個搜索框,一個城市,zip和五個產品的複選框(這是剛剛添加的部分)。理想情況下,您只能輸入一個參數,它會根據你輸入/檢查了什麼,或者你可以輸入/檢查多個參數。城市/郵編位工作正常,但結果只顯示銷售全部5種產品的地點 - 它不識別空值。這是我的提交功能的搜索形式:多個複選框值
<script type="text/javascript">
$(function() {
$(".form #searchBtn").click(function() {
var searchParameters = "";
if ($(".form #city").val() != "") {
if (searchParameters != "") {
searchParameters += "&";
}
searchParameters += "city=" + $(".form #city").val();
}
if ($(".form #zip").val() != "") {
if (searchParameters != "") {
searchParameters += "&";
}
searchParameters += "zip=" + $(".form #zip").val();
}
if ($(".form #product1").is(':checked')) {
if (searchParameters != "") {
searchParameters += "&";
}
searchParameters += "product1=" + "X";
}
if ($(".form #product2").is(':checked')) {
if (searchParameters != "") {
searchParameters += "&";
}
searchParameters += "product2=" + "X";
}
if ($(".form #product3").is(':checked')) {
if (searchParameters != "") {
searchParameters += "&";
}
searchParameters += "product3=" + "X";
}
if ($(".form #product4").is(':checked')) {
if (searchParameters != "") {
searchParameters += "&";
}
searchParameters += "product4=" + "X";
}
if ($(".form #product5").is(':checked')) {
if (searchParameters != "") {
searchParameters += "&";
}
searchParameters += "product5=" + "X";
}
searchParameters = searchParameters.replace(" ","%20");
$.fn.colorbox({ href: 'locations.aspx?' + searchParameters });
});
});
</script>
此代碼生成一個URL與搜索參數,locations.aspx城市=胡說& otherParamsHere?任何想法將不勝感激。
編輯
要回答你的問題,代碼全都在前端。以下是查詢生成結果的locations.aspx的查詢內容。
<asp:SqlDataSource ID="locations" runat="server"
SelectCommand="SELECT * FROM [locations] WHERE (([city] LIKE '%' + @city + '%') AND ([zip] LIKE '%' + @zip + '%') AND ([product1] LIKE '%' + @product1 + '%') AND ([product2] LIKE '%' + @product2 + '%') AND ([product3] LIKE '%' + @product3 + '%') AND ([product4] LIKE '%' + @product4 + '%') AND ([product5] LIKE '%' + @product5 + '%')) ORDER BY [retailer_name]">
<SelectParameters>
<asp:QueryStringParameter DefaultValue="%" Name="city"
QueryStringField="city" Type="String" />
<asp:QueryStringParameter DefaultValue="%" Name="zip"
QueryStringField="zip" Type="String" />
<asp:QueryStringParameter DefaultValue="%" Name="product1"
QueryStringField="product1" Type="String" />
<asp:QueryStringParameter DefaultValue="%" Name="product2"
QueryStringField="product2" Type="String" />
<asp:QueryStringParameter DefaultValue="%" Name="product3"
QueryStringField="product3" Type="String" />
<asp:QueryStringParameter DefaultValue="%" Name="product4"
QueryStringField="product4" Type="String" />
<asp:QueryStringParameter DefaultValue="%" Name="product5"
QueryStringField="product5" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
編輯
再次修訂包括形式。
<input type="text" id="city" size="20" />
<input type="text" id="zip" maxlength="5" size="5" />
<input type="checkbox" id="product1" value="" />
<input type="checkbox" id="product2" value="" />
<input type="checkbox" id="product3" value="" />
<input type="checkbox" id="product4" value="" />
<input type="checkbox" id="product5" value="" />
<input type="button" value="Search" id="searchBtn"/>
可能是您的後端代碼位於locations.aspx.cs中。你可以追加一些包含搜索方法的代碼嗎? –
見上面...讓我知道如果有什麼我可以告訴你。 – user2697262
請參閱我的建議以獲取下面的新Sql語句。 –