javascript - 需要用javascript多次提交表单

标签 javascript php forms

正如标题所说,我需要多次提交表单,表单的操作是一个外部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");
            }
        });


    }
}    

最佳答案

提交会触发页面重新加载/重定向到您的操作。您必须为表单提交添加 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();


  }
}

关于javascript - 需要用javascript多次提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53478615/

相关文章:

Javascript 跟踪变量变化

php - 不显示来自mysql的数据

php - Symfony2 - 自定义 FormType 类

css - 重力形式 选择占位符样式

javascript - 是否有任何预构建的方法可以在 JavaScript 中查找给定字符串的所有排列?

javascript - 拒绝执行 'url' 中的脚本,因为其 MIME 类型 ('application/json' )不可执行

php - 隐藏产品库中的奇怪缩略图以选择特定的产品属性术语名称

php - node.js 与 Apache PHP 一起运行?

Django 表格 : reload view after post

javascript - JavaScript 中 includes 方法的时间复杂度