朋友们,我是这个jQuery ajax调用的新手。 我想在没有回发的情况下将数据插入数据库。 目前它正在使用回发,请找到错误和帮助。 在这里我使用了jQuery ajax调用,在这里我得到数据和 将其传递给webservice以在后台插入记录 没有回发但会得到回发并插入记录。
这里我只使用了三个记录进行测试。
Default.aspx代码
<head runat="server">
<title></title>
<script type="text/javascript" src="//code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#btnsubmit').click(function () {
var firstname = $('#txtfirstname').val();
var lastname = $('#txtlastname').val();
var occupation = $('#txtoccupation').val();
$.ajax({
type: 'POST',
contentType: "application/json; charset=utf-8",
url: 'Default.aspx/savedata',
data: "{'firstname':'" + firstname + "','lastname':'" + lastname + "','occupation':'" + occupation + "'}",
async: false,
success: function (response) {
$('#txtfirstname').val(''); $('#txtlastname').val(''); $('#txtoccupation').val('');
//alert("Record saved successfully in database");
},
error: function () {
alert("some problem in saving data");
}
});
});
});
</script>
</head>
</html>
Default.aspx.cs代码
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
public static string savedata(string firstname, string lastname, string occupation)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["constr"].ToString());
try
{
SqlCommand cmd = new SqlCommand("Insert into profileinfo values('" + firstname + "','" + lastname + "','" + occupation + "')", con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
return "Success";
}
catch(Exception ex)
{
return "failed";
}
}
protected void btnsubmit_Click(object sender, EventArgs e)
{
}
}
答案 0 :(得分:0)
请试试这个
第1步:
添加名称空间:
using System.Web.Services;
[WebMethod]
public static string savedata(string firstname, string lastname, string occupation)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["constr"].ToString());
try
{
SqlCommand cmd = new SqlCommand("Insert into profileinfo values('" + firstname + "','" + lastname + "','" + occupation + "')", con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
return "Success";
}
catch(Exception ex)
{
return "failed";
}
}
在javascript中请尝试此操作
$(document).ready(function () {
$('#btnsubmit').click(function () {
var firstname = $('#txtfirstname').val();
var lastname = $('#txtlastname').val();
var occupation = $('#txtoccupation').val();
$.ajax({
type: 'POST',
contentType: "application/json; charset=utf-8",
url: 'Default.aspx/savedata',
data: "{'firstname':'" + firstname + "','lastname':'" + lastname + "','occupation':'" + occupation + "'}",
async: false,
success: function (response) {
$('#txtfirstname').val(''); $('#txtlastname').val(''); $('#txtoccupation').val('');
//alert("Record saved successfully in database");
},
error: function () {
alert("some problem in saving data");
}
});
return false; //Plese return false in your js
});
});
答案 1 :(得分:0)
如果您使用的输入按钮类型为&#34;请提交&#34;或者asp:带有runat的按钮=&#34;服务器&#34;将其更改为
<input type="button" id="btnsubmit" value="TextHere">
并且还会改变你的错误函数,如果有任何
,它会给你一个确切的错误error: function (err) {
alert(JSON.stringify(err)));
}
如果您使用的是ajax
,则无需此功能protected void btnsubmit_Click(object sender, EventArgs e)
{
}
答案 2 :(得分:0)
使用System.Web.Services添加名称空间; 然后为你的静态字符串函数添加[webmethod]。它会工作。