Как показывать только однажды alert в цикле for JS?

Я делаю вставление в два подмостков SQL линий таблицы HTML. Я получаю данные о линиях с циклом for и внутри цикла у меня есть две функции ajax что посылают данные в страницу, которая обрабатывает вставление в мой BD. В методе success я призываю один alert для того, чтобы оно явилось сообщением, когда будет введен реестр правильно. Проблема состоит в том, что всякий раз когда он вводит линию таблицы HTML он появляется у меня alert и он логичен, потому что он внутри цикла for.

Как я могу делать для того, чтобы он появился у меня только однажды alert ajax и не так часто, как реестры были введены в BD?

    $("#btnGenerarNomina").click(function() {
          var tabla = document.getElementById("tblNomina");
          var c1 = tabla.getElementsByClassName("numSolicitud");
          var c2 = tabla.getElementsByClassName("numVendedor");
          var c3 = tabla.getElementsByClassName("nombreEmpleado");
          var c4 = tabla.getElementsByClassName("numEmpleado");
          var c5 = tabla.getElementsByClassName("telActivacion");
          var c6 = tabla.getElementsByClassName("fechaActivacion");
          var c7 = tabla.getElementsByClassName("planRenta");
          var c8 = tabla.getElementsByClassName("tramite");
          var c9 = tabla.getElementsByClassName("plazo");
          var c10 = tabla.getElementsByClassName("fechaEntrega");
          var c11 = tabla.getElementsByClassName("diasTranscurridos");
          var c12 = tabla.getElementsByClassName("comision");

          for (var i = 0; i < c1.length; i++) {
            var solicitud = c1[i].innerHTML;
            var numVendedor = c2[i].innerHTML;
            var nombre = c3[i].innerHTML;
            var comision = c12[i].innerHTML;
            var datosFormulario = {
              numSolicitud: solicitud.trim(),
              numVendedor: numVendedor.trim(),
              nombreEmpleado: nombre.trim(),
              valorComision: comision.trim()
            };
            $.ajax({
              type: "POST",
              url: "procesaGenerar",
              data: datosFormulario,
              success: function(data) {

                var ress = data;


                if (i = c1.length) {
                  alert(i + "actualiza");
                  alert(ress);
                }

              }
            });

            $.ajax({
              type: "POST",
              url: "procesaGuardaComisionesPospago",
              data: datosFormulario,
              success: function(resultado) {
                //alert(resultado);
                var res = resultado;
                //if (res.trim() == "Guardado éxitoso") {
                alert(i + "guarda");
                if (i < 1) {
                  alert(i + "guarda");
                  alert(res);
                  myFunction("atencionNegocios");
                }
                //}
              }
            });
          }

Я попробовал помещать условие if в результатах, которые возвращает ajax, но оно не функционировало.

0
задан 08.11.2016, 12:11
3 ответа

Ты это решаешь с флагом.

band = false
 for (var i = 0; i < c1.length; i++) {
      // tu codigo aqui 
      if(!band){
         alert("tu comentario en el alert")
         band = true
      }
 }

Таким образом, только он напечатает alert однажды. Сейчас, что я не очень convendido, дело в том, что ты послал столько просьб с ajax. Не было бы лучше, чтобы ты получил всю дату и осуществил ни одну поставку?

Привет.

3
ответ дан 24.11.2019, 12:43
  • 1
    не, как получение всей даты – Ivxn 06.11.2016, 23:11
  • 2
    @Ivxn этот if ты это вводишь в твой funci и # 243; n success. – Cheshire 07.11.2016, 10:22

Я предполагаю, что идея состоит в том, чтобы посылать alert в Гєltimo, "перехожу" из цикла.

if(i == c1.length-1){
alert('Lo que quieras alertar');
}
2
ответ дан 24.11.2019, 12:43
  • 1
    Эта быть должным и # 237; чтобы быть ответом. Это очевидно м и # 225; s простой. – Peregring-lk 08.11.2016, 14:37

То, что я рекомендую тебе, состоит в том, чтобы герметизировать в корпусе в одной funciГіn каждого названного ajax, с этим мы добиваемся того, чтобы у каждого названного к ajax была установленная стоимость, посланная параметром i, который является счетчиком твоего цикла for. Мне кажется, что внутри названный ajax стоимость i не меняет

var c1, c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12;

$("#btnGenerarNomina").click(function() {

var tabla = document.getElementById("tblNomina");
c1 = tabla.getElementsByClassName("numSolicitud");
c2 = tabla.getElementsByClassName("numVendedor");
c3 = tabla.getElementsByClassName("nombreEmpleado");
c4 = tabla.getElementsByClassName("numEmpleado");
c5 = tabla.getElementsByClassName("telActivacion");
c6 = tabla.getElementsByClassName("fechaActivacion");
c7 = tabla.getElementsByClassName("planRenta");
c8 = tabla.getElementsByClassName("tramite");
c9 = tabla.getElementsByClassName("plazo");
c10 = tabla.getElementsByClassName("fechaEntrega");
c11 = tabla.getElementsByClassName("diasTranscurridos");
c12 = tabla.getElementsByClassName("comision");

for (var i = 0; i < c1.length; i++) {
    guardar1(i);
    guardar2(i);
}

});

function guardar1(i){
    var solicitud = c1[i].innerHTML;
    var numVendedor = c2[i].innerHTML;
    var nombre = c3[i].innerHTML;
    var comision = c12[i].innerHTML;
    var datosFormulario = {
          numSolicitud: solicitud.trim(),
          numVendedor: numVendedor.trim(),
          nombreEmpleado: nombre.trim(),
          valorComision: comision.trim()
        };
    $.ajax({
          type: "POST",
          url: "procesaGenerar",
          data: datosFormulario,
          success: function(data) {

            var ress = data;


            if ((i+1) == c1.lenght) {
              alert(i + "actualiza");
              alert(ress);
            }
          }
     });
}

function guardar2(i){
    var solicitud = c1[i].innerHTML;
    var numVendedor = c2[i].innerHTML;
    var nombre = c3[i].innerHTML;
    var comision = c12[i].innerHTML;
    var datosFormulario = {
      numSolicitud: solicitud.trim(),
      numVendedor: numVendedor.trim(),
      nombreEmpleado: nombre.trim(),
      valorComision: comision.trim()
    };
    $.ajax({
          type: "POST",
          url: "procesaGuardaComisionesPospago",
          data: datosFormulario,
          success: function(resultado) {
            //alert(resultado);
            var res = resultado;
            //if (res.trim() == "Guardado éxitoso") {
            alert(i + "guarda");
            if (i == 0) {
              alert(i + "guarda");
              alert(res);
              myFunction("atencionNegocios");
            }
            //}
          }
    });
}

EDIT

, Оператор = - ассигнования в то время как == - comparaciГіn.

1
ответ дан 24.11.2019, 12:43
  • 1
    из формы, которую ты показываешь мне в первом случае, я сделал это таким и уже я произвожусь только alert и вставление приносит пользу, я захотел осуществить это во втором случае с тем же условием if, но он ничего не показывает мне во втором if, но если он реализует вставление – Ivxn 06.11.2016, 23:15
  • 2
    Ты можешь печатать стоимость i во втором ajax? – sioesi 06.11.2016, 23:16
  • 3
    поскольку у меня есть 6 линий в моей таблице HTML, если меня приносит стоимость i и его 6 – Ivxn 06.11.2016, 23:30
  • 4
    Но i - счетчик внутри твоего цикла следовательно напечатай это и он был бы должен давать тебе 0.... 5 – sioesi 06.11.2016, 23:31
  • 5
    только он печатает мне 6 6 раз – Ivxn 06.11.2016, 23:34