我想使用jquery点击链接从数据库中获取一些数据,但是点击链接获取未定义类型的警报

时间:2014-02-19 20:04:22

标签: c# jquery asp.net ajax

我希望在点击链接时根据该链接的文本从数据库中获取数据,但是获取未定义的警报消息。 我是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;
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我认为你遗漏了字符串的引号。

使用

data: '{name: "' + name + '"}'

而不是

data: '{name: ' + name + '}'

回应你的评论: 该消息表示您请求的URL不正确。请试试这个。

url:document.location + '/GetPrice'

请确认您的请求是否使用了正确的网址。您可以使用浏览器开发工具的网络监视器组件或Fiddler之类的HTTP代理。如果您有chrome,则可以使用“开发工具”的“网络”选项卡进行检查。此外,您可以使用名为Postman的chrome插件来调用HTTP请求以检查它们是否正常工作。

如果你是从同一页面打电话的话?