AJAX отправляет данные в БД без кнопки ASP: - PullRequest
0 голосов
/ 15 ноября 2018

Я получаю значение в js и хочу вставить его в БД с помощью ajax post. Возможно ли это сделать без кнопки asp: для привязки значения к коду позади?

ОБНОВЛЕНИЕ вот Js:

function readXML() {
  var xml = new XMLHttpRequest();
  xml.open('GET', 'toXml/file.xml', false);
  xml.send();
  var xmlData = xml.responseXML;
  if (!xmlData) {
    xmlData = (new DOMParser()).parseFromString(xml.responseText, 'text/xml');
  }

  var itemsID = xmlData.getElementsByTagName("entry");
  var itemsTitle = xmlData.getElementsByTagName("entry");
  var itemsCustomer = xmlData.getElementsByTagName("d:Customer");
  var itemsBrand = xmlData.getElementsByTagName("d:Brand");
  var itemsCountries = xmlData.getElementsByTagName("d:Countries");
  var itemsElement = xmlData.getElementsByTagName("d:element");

  var i, k, j, ID, Title, Customer, Brand, Countries;

  var list = [];

  for (i = 0; i < itemsTitle.length; i++) {

    var Brands = "";
    var Country = "";

    itemI = itemsID[i];
    itemT = itemsTitle[i];
    itemCr = itemsCustomer[i];
    itemB = itemsBrand[i];
    itemCs = itemsCountries[i];
    itemEl = itemsElement[k];

    ID = itemI.getElementsByTagName("d:Id")[0].firstChild.data;

    Title = itemT.getElementsByTagName("d:Title")[0].firstChild.data;

    Customer = itemCr.getElementsByTagName("d:element")[0].firstChild.data;

    for (k = 0; k < itemB.children.length; k++) {
      Brand = itemB.getElementsByTagName("d:element")[k].firstChild.data;

      if (k > 1) {
        Brands += Brand + ",";
      }
      else {
        Brands = Brand;
      }
    }

    for (j = 0; j < itemCs.children.length; j++) {
      Countries = itemCs.getElementsByTagName("d:element")[j].firstChild.data;

      if (j > 1) {
        Country += Countries + ",";
      }
      else {
        Country = Countries;
      }

    }
    list[i] = [ID, Title, Customer, Brands, Country];
  }

  var table = $('#table_id').DataTable({
    lengthMenu: [[10, 25, 50, 200, -1], [10, 25, 50, 200, "All"]],
    data: list,
    columns: [
      { title: "ID" },
      { title: "Title" },
      { title: "Customer" },
      { title: "Brands" },
      { title: "Country" },
      { title: "Check", "defaultContent": "<button class=\"checkBtn\" type=\"button\">Check</button>" },
      { title: "Create", "defaultContent": "<button class=\"createBtn\" type=\"button\">Create</button>" }
    ],
    columnDefs: [{
      "targets": [0],
      "visible": true,
      "searchable": true
    }]
  });

  $('#table_id').on('click', '.checkBtn', function () {
    var data = table.row($(this).parents('tr')).data();
    alert("ID:" + data[0] + "," + "Title:" + data[1] + "," + "Customer:" + data[2] + "," + "Brand:" + data[3] + "," + "Country:" + data[4]);
    $.ajax({
      type: "POST",
      url: "Selida.aspx/InsertData",
      data: JSON.stringify(data[0]),
      contentType: "application/json; charset=utf-8",
      dataType: "json",
      success: function () {

        alert("all good");
      },
      error: function (errMessage) {
        alert("Error:" + errMessage);
      }
    });
  });
}

Через C # я получаю данные и сохраняю их в XML-файл. Затем с помощью js я получаю эти данные и с помощью таблиц данных Jquery, которые я отображаю на странице.

У меня есть метод в c #, называемый InsertData, который должен вставлять данные в БД. Я думаю, что проблема в вызове ajax.

1 Ответ

0 голосов
/ 19 ноября 2018

Ответ да, я могу опубликовать значение из js с помощью вызова ajax, который не имеет отношения к стороне сервера

$.ajax({
      type: "POST",
      url: "Selida.aspx/CheckData",
      data: JSON.stringify({ trala : data[0] }),
      contentType: "application/json; charset=utf-8",
      dataType: "json",
      success: function () {

        alert("It's already in the DB");
      },
      error: function (errMessage) {
        console.log("Error:" + JSON.stringify(errMessage));
      }

    });

, а параметр в методе c # должен иметь имя "trala"для того, чтобы получить значение из сообщения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...