Отправить несколько форм через AJAX - PullRequest
0 голосов
/ 28 мая 2018

У меня есть цикл while, который повторяет форму для инцидентов.Форма запускает запрос MySQL. Я пытаюсь использовать ajax, чтобы предотвратить перенаправление страницы при отправке.Я пытаюсь выяснить, как передать данные, которые, кажется, не работают, потому что каждая форма имеет один и тот же класс или идентификатор.

изображение таблицы с кнопкой отправки для каждой строки Форма

<form action="status_change.php" method="post" class="ajax">
      <div class="form-group"> 
           <input type="hidden" class="form-control"  name="incidentnum" value="' . $row_aincidents['incidentnumber'] . '">
</div>
<div class="form-group"> 
<input type="hidden" class="form-control"  name="unit" value="' . $row_aincidents['unitid'] . '">
 </div>
 <div class="form-group"> 
 <input type="hidden" class="form-control"  name="status" value="3">
 </div>

 <button type="submit" class="btn btn-primary btn-sm">STAMP</button>
 </form>

Java Script

      $('form.ajax').on('submit', function () {

          var that = $(this),
                  url = that.attr('action'),
                  type = that.attr('metod'),
                  data = {};

          that.find('[name]').each(function (index, value) {
              var that = $(this),
                      name = that.attr('name'),
                      value = that.val();

              data[name] = value;

          });

          $.ajax({
              url: url,
              type: type,
              data: data,
              success: function(response) {
                  console.log(response);
              }
          });
          return false;
      });

1 Ответ

0 голосов
/ 28 мая 2018

Я думаю, что вы только что получили несколько опечаток и ошибок.Вам нужно указать метод (и вы получили опечатку, получающую этот атрибут формы).Также вы устанавливаете метод как параметр type.

Метод по умолчанию для вызова jjuery ajax - get, поэтому вы не получите никакой стороны сервера данных, если ожидаете ее через post.

  $('form.ajax').on('submit', function () {

      var that = $(this),
          url = that.attr('action'),
          type = that.attr('method'),
          data = {};

      that.find('[name]').each(function (index, value) {
          var that = $(this),
              name = that.attr('name'),
              value = that.val();
          data[name] = value;
      });

      $.ajax({
          url: url,
          method: type,
          data: data,
          success: function(response) {
              console.log(response);
          }
      });

      return false;

  });

Также рекомендуется установить, какой тип возвращаемых данных вы ожидаете от сервера.Ожидаемый тип данных по умолчанию для $.ajax - это предположение (jQuery может обнаруживать json, xml, html и скрипт).Вы можете указать ожидаемый тип данных, используя опцию dataType.

Также не рекомендуется использовать входы с одинаковыми именами в одной форме.В вашем случае, поскольку у вас есть несколько форм, это не будет проблемой.

Подробнее о $.ajax можно прочитать здесь .

...