我希望在点击链接时根据该链接的文本从数据库中获取数据,但是获取未定义的警报消息。 我是jquery的新手,所以如果有人可以帮我解决这个问题。提前致谢。 这是代码片段
jquery的
<script type="text/javascript">
var name;
$(function () {
$("[id*=Menu] td a").click(function () {
name=$(this).text().trim();
GetRecords();
//alert(name);
});
});
function GetRecords() {
$("#loader").show();
$.ajax({
type: "POST",
url: "kioskstore.aspx/GetPrice",
data: '{name: ' + name + '}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
failure: function (response) {
alert(response.d);
},
error: function (response) {
alert(response.d);
}
});
}
function OnSuccess(response) {
var xmlDoc = $.parseXML(response.d);
var xml = $(xmlDoc);
var productsInfo = xml.find("Products_Info");
productsInfo.each(function () {
var customer = $(this);
$(".price").html(customer.find("Products_Price").text().trim());
});
$("#loader").hide();
}
</script>
asp.net
<div style="margin-top:25px;height:40px;float: left;margin-left:40px;font-family:cursive;font-size:24px;color:#ffe476;">
<asp:Label runat="server" CssClass="price" Text=""></asp:Label>
</div>
和C#背后的代码
[WebMethod]
public static string GetPrice(string name)
{
return GetPriceData(name).GetXml();
}
public static DataSet GetPriceData(string name)
{
string query = "select * from Product_Info where Product_Name=@pname";
SqlCommand cmd = new SqlCommand(query);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@pname", name);
//cmd.Parameters.Add("@PageCount", SqlDbType.Int, 4).Direction = ParameterDirection.Output;
return GetData(cmd);
}
private static DataSet GetData(SqlCommand cmd)
{
string strConnString = ConfigurationManager.ConnectionStrings["mycon"].ConnectionString;
using (SqlConnection con = new SqlConnection(strConnString))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataSet ds = new DataSet())
{
sda.Fill(ds, "Product_Info");
return ds;
}
}
}
}
答案 0 :(得分:0)
我认为你遗漏了字符串的引号。
使用
data: '{name: "' + name + '"}'
而不是
data: '{name: ' + name + '}'
回应你的评论: 该消息表示您请求的URL不正确。请试试这个。
url:document.location + '/GetPrice'
请确认您的请求是否使用了正确的网址。您可以使用浏览器开发工具的网络监视器组件或Fiddler之类的HTTP代理。如果您有chrome,则可以使用“开发工具”的“网络”选项卡进行检查。此外,您可以使用名为Postman的chrome插件来调用HTTP请求以检查它们是否正常工作。
如果你是从同一页面打电话的话?