2016-09-20 138 views
-3

enter image description here Ajax函数不更新数据。数据加载在引导程序的对话框中,我需要更新数据与changes.i还检查浏览器中的值是来自对话框,但不在数据库中发布..如何解决..预先感谢Ajax函数不起作用

客户端:

$("#UpdateTbl").click(function() { 
    var id = $(this).attr("edit-id"); 
    var user = {}; 
    debugger; 
    user.DayDesc = $("#DaybookDesc1").val(); 
    user.VoucherNo = $("#Prifix1").val(); 
    user.VoucherNo1 = $("#Surffix1").val(); 


    $.ajax({ 
     type: "Post", 
     contentType: "application/json; charset=utf-8", 
     url: "DaybookMast.aspx/UpdateData", 
     data:JSON.stringify('{objEmployee: ' + JSON.stringify(user) + ', eid : ' + id + '}'), 
     dataType: "json", 
     success: function (data) { 
      if (confirm("Are you want to change !") == true) { 
       alert("Updated successfully"); 
      } else { 
       alert("canceled changes"); 
      } 

     }, 
     error: function (data) { 
      alert("Error while Updating data of :" + id); 
     } 
    }); 
}); 

服务器端:

[WebMethod] 
public static void UpdateData(DayBooks objEmployee, string eid) //Update data in database  
{ 
    using (var con = new SqlConnection(strConnection)) 
    { 
     var query = "update DayBooks set DayDesc='" + objEmployee.DayDesc + "',VoucherNo='" + objEmployee.VoucherNo + 
        "',VoucherNo1='" + objEmployee.VoucherNo1 + "'where DayCode='" + eid + "'"; 
     con.Open(); 
     var cmd = new SqlCommand(query, con); 
     cmd.ExecuteNonQuery(); 
     con.Close(); 
    } 
} 
+0

objEmployee是客观化还是字符串? – mplungjan

回答

1

我想你应该不字符串化JSON您发表您的数据:

$("#UpdateTbl").click(function() { 
    var id = $(this).attr("edit-id"); 
    var user = {}; 
    debugger; 
    user.DayDesc = $("#DaybookDesc1").val(); 
    user.VoucherNo = $("#Prifix1").val(); 
    user.VoucherNo1 = $("#Surffix1").val(); 


    $.ajax({ 
     type: "Post", 
     contentType: "application/json; charset=utf-8", 
     url: "DaybookMast.aspx/UpdateData", 
     data: {"objEmployee": user, "eid": id}, 
     dataType: "json", 
     success: function (data) { 
      if (confirm("Are you want to change !") == true) { 
       alert("Updated successfully"); 
      } else { 
       alert("canceled changes"); 
      } 
     }, 
     error: function (data) { 
      alert("Error while Updating data of :" + id); 
     } 
    }); 
}); 

请注意:不要在您的数据库语句中执行SQL注入...而是使用参数来避免可能的安全漏洞。 更多信息@https://stackoverflow.com/a/6548006/2805121

+0

无法正常工作...... –

+1

什么不正确?你在网络标签中看到什么?你的服务器代码实际上是被称为?请求头中有什么? – Nsevens

+0

没有网络选项卡清除,但在控制台中: - 无法加载资源:服务器响应的状态为500(内部服务器错误) –

1

首先,你有什么错误信息?

在测试Ajax & C#更新函数之间的通信之前,您需要测试连接是否是函数。

public static void UpdateData(DayBooks objEmployee, string eid) //Update data in database  
{ 
    using (var con = new SqlConnection(strConnection)) 
    { 
     var query = "UPDATE DayBooks set DayDesc=12345,VoucherNo=54321,VoucherNo1=1 where DayCode=12"; 
     con.Open(); 
     var cmd = new SqlCommand(query, con); 
     cmd.ExecuteNonQuery(); 
     con.Close(); 
    } 
} 

并检查您的表是否已更新,如果更新表成功。 您需要调试Ajax数据请求。

由于@Nsevens代码:

$("#UpdateTbl").click(function() { 
    var id = $(this).attr("edit-id");  <- what's value of id 
    var user = {}; 
    debugger; 
    user.DayDesc = $("#DaybookDesc1").val(); <- what's value of user.DayDesc 
    user.VoucherNo = $("#Prifix1").val(); <- what's value of user.VoucherNo 
    user.VoucherNo1 = $("#Surffix1").val(); <- what's value of user.VoucherNo1 


    $.ajax({ 
     type: "Post", 
     contentType: "application/json; charset=utf-8", 
     url: "DaybookMast.aspx/UpdateData", 
     data: {"objEmployee": user, "eid": id}, <- what's value of data 
     dataType: "json", 
     success: function (data) { 
      if (confirm("Are you want to change !") == true) { 
       alert("Updated successfully"); 
      } else { 
       alert("canceled changes"); 
      } 
     }, 
     error: function (data) { 
      alert("Error while Updating data of :" + id); 
     } 
    }); 
}); 

使用的console.log用于调试:

的console.log( “userArray:” +用户);

这会有帮助,当你有这样的问题时,检查你发送的数据是很重要的。