Передача данных в базу данных SQL через форму в sweetalert2 - PullRequest
0 голосов
/ 11 июля 2019

Я использую sweetalert2 для отображения всплывающего окна, где пользователи могут вводить информацию. После нажатия на кнопку отправить он отправит данные в мою базу данных. Тем не менее, при нажатии отправить его ошибки. Данные не добавляются в базу данных.

Я пробовал несколько разных способов отправки формы, например отдельную кнопку отправки и отправку формы jquery.

$('#btnAlert').click(function (e) {
  Swal.fire({
    title: 'Sign Out Device',
    html:
      '<form method="post" id="Form">' +
      '<input asp-for="Item.Name" id="Name" class="form-control" />' +
      '<input asp-for="Item.TimeOut" id="TimeOut" class="form-control" value="@DateTime.Now" readonly />' +
      '<input asp-for="Item.Desc" id="Desc" class="form-control" />' +
      '</form>',
    focusConfirm: false,
    confirmButtonText: 'Submit',
    preConfirm: () => {
      let Name = Swal.getPopup().querySelector('#Name').value
      let Description = Swal.getPopup().querySelector('#Desc').value
      let Date = Swal.getPopup().querySelector('#TimeOut').value
      if (Name === '' || Description === '') {
        Swal.showValidationMessage('Please fill in all fields')
      }
    },
    onClose: () => {
      document.getElementById("Form").submit()
    }
  })
});

Вот сообщение об ошибке: Эта страница не работает. Если проблема не устранена, обратитесь к владельцу сайта. ОШИБКА HTTP 400

1 Ответ

0 голосов
/ 12 июля 2019

Ошибка 400 возникает из-за того, что вы не передаете токен подтверждения запроса в своем сообщении, которое ожидает Razor Pages.

Кроме того, HTML-код, передаваемый методу fire, не является стандартным. Это похоже на помощники тегов Razor, которые полезны только в контексте cshtml страницы, которая обрабатывается платформой Razor Pages. Это бесполезно как строка, переданная методу JavaScript. Вы должны изменить помощники тегов на стандартные вводы HTML с соответствующими атрибутами name.

...