Нужно отправить форму несколько раз с помощью JavaScript - PullRequest
0 голосов
/ 26 ноября 2018

Как видно из заголовка, мне нужно отправить форму несколько раз, действие формы - внешний php-файл.Форма отправляется один раз, но мне нужно отправить ее один раз в каждом цикле.

   function send_sms(){
    var receivers = document.getElementById('receivers').value.toString();
    var receivers_array = receivers.split(',');
    for(var i = 0; i < receivers_array.length; i++) {
        // Trim the excess whitespace.
        receivers_array[i] = receivers_array[i].replace(/^\s*/, "").replace(/\s*$/, "");
        document.getElementById('receiver').value = receivers_array[i];
        document.getElementById("smsForm").submit();


    }
} 

В основном код должен разделять телефонные номера, которые вводит пользователь, и отправлять текстовое сообщение каждому из них.номера.Он отправляется, и текст отправляется на первый номер в массиве, но не на другие введенные номера.Расщепление и все работает (я использовал console.log на все, чтобы проверить).Цикл также не прерывается, потому что консоль регистрирует каждое значение получателя после назначения его внутри цикла.

ОБНОВЛЕНИЕ: работает так:

  function send_sms(){
    var receivers = document.getElementById('receivers').value.toString();
    console.log(receivers);
    var receivers_array = receivers.split(',');
    console.log(receivers_array[0]);
    for(var i = 0; i < receivers_array.length; i++) {
        // Trim the excess whitespace.
        receivers_array[i] = receivers_array[i].replace(/^\s*/, "").replace(/\s*$/, "");
        document.getElementById('receiver').value = receivers_array[i];
        console.log(document.getElementById('receiver').value);
        //document.getElementById("smsForm").submit();
        $.ajax({
            url:'../API/sendsms.php',
            type:'post',
            data:$('#smsForm').serialize(),
            success:function(){
                alert("worked");
            }
        });


    }
}    

Ответы [ 2 ]

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

Отправить страницу триггеров перезагрузить / перенаправить на ваши действия.Вы должны добавить слушатель ajax для отправки формы, чтобы он не обновлял страницу каждый раз, когда отправка запускается.

$(document).on('submit', 'form#smsForm', function() {
  $.ajax({
    url: $(this).attr('action'),
    type: $(this).attr('method'),
    dataType: 'json',
    data: $(this).serialize(),
    success: function(data) {
      console.log('Submitted');
    },
    error: function(xhr, err) {
      console.log('Error');
    }
  });
  return false;
});

function send_sms() {
  var receivers = document.getElementById('receivers').value.toString();
  var receivers_array = receivers.split(',');
  for (var i = 0; i < receivers_array.length; i++) {
    // Trim the excess whitespace.
    receivers_array[i] = receivers_array[i].replace(/^\s*/, "").replace(/\s*$/, "");
    document.getElementById('receiver').value = receivers_array[i];
    document.getElementById("smsForm").submit();


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

Вы можете попробовать собрать все номера и отправить их в одном запросе, после этого проанализировать их на бэкэнд-стороне и отправить смс

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