這是使用SQL Server 2012數據庫的IIS 7.5經典ASP網站。在SQL語句中使用通過AJAX的2個值
我需要幫助。我通過一個函數傳遞2個值到另一個經典的ASP頁面,這反過來將在SQL語句中使用這些值返回一個值
當我使用它時,它不會返回值,但是當我手動輸入一個值時,如UnitPieces
的'7'和City
的'Los Angeles',它從SQL Server數據庫返回適當的數據。
以下是我與
<form>
<select id="shiptoarea" name="shipcost" class="required" onchange="shipping(this.value)">
<option disabled="disabled" selected="selected" value="">--Choose One--</option>
<option value="San Francisco">San Francisco</option>
<option value="Los Angeles">Los Angeles</option>
<option value="New York">New York</option>
<option value="San Diego">San Digeo</option>
</select>
</form>
<p id="shippingcost"></p>
,它的值發送到這個AJAX功能工作(注:<%= vcItems%>在購物車中的商品數量)
function shipping(str) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
document.getElementById("shippingcost").innerHTML = this.responseText;
};
xmlhttp.open("GET", "shiptoamount.asp?y=<%=vcItems%>&q=" + str, true);
xmlhttp.send();
}
</script>
這是運行SQL查詢的頁面
Dim Connection
Dim ConnString
Dim Recordset
Dim SQL
Dim qq
Dim yy
qq = (request.querystring("q"))
yy = (request.querystring("y"))
ConnString = "DRIVER={SQL Server};SERVER=SQLServerName;UID=username;" & _
"PWD=password;DATABASE=databasename"
SQL = "SELECT FlatShipCost FROM ShipRates WHERE UnitPieces = "&yy&" AND City = "&qq
Set Connection = Server.CreateObject("ADODB.Connection")
Set Recordset = Server.CreateObject("ADODB.Recordset")
Connection.Open ConnString
Recordset.Open SQL,Connection
If Recordset.EOF Then
Response.Write("No records returned.")
Else
if NOT Recordset.Eof then
Response.write (request.querystring("q"))
Response.write (Recordset("FlatShipCost"))
end if
End if
Recordset.Close
Set Recordset = nothing
Connection.Close
Set Connection = nothing
奇怪的是,如果我手動
Response.write (request.querystring("q"))
或
Response.write (request.querystring("y"))
它會顯示在下拉選擇爲City
的HTML,也從<%,在車的正確數量的項目= vcItems%>。所以這些值會進入運行查詢的頁面,但我想我可能會在SQL語句中做錯了什麼。請幫忙。在此先感謝
(https://xkcd.com/327/) –