2016-09-20 3 views
-3

enter image description here Функция Ajax не обновляет данные. Загрузка данных в диалоговом окне бутстрапа, и мне нужно обновить данные с помощью change.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

Я думаю, что вы должны размещать свои данные без stringifying вашего 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:" + пользователь);

Это может быть полезно, когда у вас есть такая проблема, важно проверить, какие данные вы отправляете.

Смежные вопросы