RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1124813
Accepted
Pashok
Pashok
Asked:2020-05-13 18:45:45 +0000 UTC2020-05-13 18:45:45 +0000 UTC 2020-05-13 18:45:45 +0000 UTC

如何为调用的ajax请求数做一个计数器?

  • 772

有几种表格可以用 Approved/Rejected 来回答。单击 Approved/Rejected 后,将调用 AJAX。我想在成功的 AJAX 调用后将 +1、+2 等添加到跨度。怎么做才更正确?

js:

$( document ).ready(function() {
  var formaElement = $(".container");
  var counter = 0;
  formaElement.find("form[id*='zaya']").each(function() {
    var stringsp = 'zaya';
    var element = document.querySelectorAll("form[id*='zaya']")[counter];
    var idElement = element.id;
    var need = idElement.split(stringsp);
    var need = need[1];
    $("#odoZaSe"+need).click(function(ev){
      ev.preventDefault();
      var newDivOtk = document.getElementById("creaDivOtk"+need);
      newDivOtk.remove();
      var odob = "True";
      sendAjaxForm('result_form', 'zaya'+need, 'zayavki.php', odob);
      var forRemo = "zaya"+need";
      removeForm(forRemo);//Удаляем отправленную форму
        return false;
    });
    counter++;
  });
});
function otkZa(idza, coun){
  var desc = document.createElement("div");
  desc.className = "form-group";
  desc.id = "creaDivOtk"+coun;
  desc.innerHTML = "<label>Причина отказа:</label>"+
  "<input name=\"desc\" type=\"text\" class=\"form-control\" placeholder=\"Причина\">"+
  "<input class=\"btn btn-primary\" type=\"text\" name = \"otkZaSe"+idza+"\" id=\"otkZaSe"+coun+"\" readonly value=\"Отклонить\">";
  var placeDiv = document.getElementById("otkZa"+coun);
  var parent = placeDiv.parentNode;
  parent.insertBefore(desc, placeDiv);
  placeDiv.remove();
  var rem = document.getElementById("odoZaSe"+coun);
  rem.remove();
  var forRemo = document.getElementById("id ='zaya"+coun+"']");
  $("#otkZaSe"+coun).click(function(ev){
      ev.preventDefault();
      var odob = "False";
      sendAjaxForm('result_form', 'zaya'+coun, 'zayavki.php', odob);
      removeForm(forRemo);//Удаляем отправленную форму
        return false;
    });
}
function sendAjaxForm(result_form, reg_form, url, odob) {
    $.ajax({
        url:     url,
        type:     "POST",
        dataType: "html", //формат данных
        data: $("#"+reg_form).serialize(),
        success: function(response) {
          result = $.parseJSON(response);
          if(result.good == "True"){
            var message = document.getElementById('result_form');
            message.innerHTML += "<p style='color: red;'>Операция произведена</p>";
            message.scrollIntoView();
            if(odob == "True"){
              var span = document.getElementById('prinato');
              var text = document.getElementById('prinato').textContent;
              span.innerHTML = text+"<p style='color: red;'>+ "+number+"</p>";
              //Вот здесь должно добавляться +1, +2 и тд.
            }else if (odob == "False") {
              var span = document.getElementById('nePrinato');
              var text = document.getElementById('nePrinato').textContent;
              span.innerHTML = text+"<p style='color: red;'>+ "+number+"</p>";
              //Вот здесь должно добавляться +1, +2 и тд.
            }
          }
        },
        error: function(response) { 
            $('#result_form').html('Ошибка. Данные не отправлены.');
        }
    });
}

html $counterZaya - 只是一个柜台,$idZaya - 票证 ID:

<p>
<!--Тут из БД берётся кол-во заявок до запросов-->
Принятые заявки: <span id = 'prinato' class = ''>$countPrin</span>
Не принятые заявки: <span id = 'nePrinato' class = ''>$countNePrin</span>
</p>
<div id="result_form"></div>
<div class="container">
  <!--Тут в цикле выводятся формы-->
  <form id=\"zaya$counterZaya\" class=\"buttons\">
    <input name="odoZaSe$idZaya" id = "odoZaSe$counterZaya" type="text" class="btn btn-primary" value="Одобрить" readonly>
    <button onclick="otkZa($idZaya, $counterZaya);" id="otkZa$counterZaya">Отклонить</button>
  </form>
</div>
javascript
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    Pashok
    2020-05-16T14:01:19Z2020-05-16T14:01:19Z

    我找到了一个解决方案,最简单的一个,不监控发送请求的数量。由于发送请求被放置在一个函数中,因此可以将一个条件计数器传递给它,它最初等于 0,然后在成功调用时求和。js:

    var numberAj = 0;
    $( document ).ready(function() {
      var formaElement = $(".container");
      var counter = 0;
      formaElement.find("form[id*='zaya']").each(function() {
        var stringsp = 'zaya';
        var element = document.querySelectorAll("form[id*='zaya']")[counter];
        var idElement = element.id;
        var need = idElement.split(stringsp);
        var need = need[1];
        $("#odoZaSe"+need).click(function(ev){
          ev.preventDefault();
          var newDivOtk = document.getElementById("creaDivOtk"+need);
          newDivOtk.remove();
          var odob = "True";
          sendAjaxForm('result_form', 'zaya'+need, 'zayavki.php', odob, numberAj);
          var forRemo = "zaya"+need";
          removeForm(forRemo);//Удаляем отправленную форму
            return false;
        });
        counter++;
      });
    });
    function otkZa(idza, coun){
      var desc = document.createElement("div");
      desc.className = "form-group";
      desc.id = "creaDivOtk"+coun;
      desc.innerHTML = "<label>Причина отказа:</label>"+
      "<input name=\"desc\" type=\"text\" class=\"form-control\" placeholder=\"Причина\">"+
      "<input class=\"btn btn-primary\" type=\"text\" name = \"otkZaSe"+idza+"\" id=\"otkZaSe"+coun+"\" readonly value=\"Отклонить\">";
      var placeDiv = document.getElementById("otkZa"+coun);
      var parent = placeDiv.parentNode;
      parent.insertBefore(desc, placeDiv);
      placeDiv.remove();
      var rem = document.getElementById("odoZaSe"+coun);
      rem.remove();
      var forRemo = document.getElementById("id ='zaya"+coun+"']");
      $("#otkZaSe"+coun).click(function(ev){
          ev.preventDefault();
          var odob = "False";
          sendAjaxForm('result_form', 'zaya'+coun, 'zayavki.php', odob, numberAj);
          removeForm(forRemo);//Удаляем отправленную форму
            return false;
        });
    }
    function sendAjaxForm(result_form, reg_form, url, odob, number) {
        $.ajax({
            url:     url,
            type:     "POST",
            dataType: "html", //формат данных
            data: $("#"+reg_form).serialize(),
            success: function(response) {
              result = $.parseJSON(response);
              if(result.good == "True"){
                var message = document.getElementById('result_form');
                message.innerHTML += "<p style='color: red;'>Операция произведена</p>";
                message.scrollIntoView();
                if(odob == "True"){
                  number++;
                  numberAj++;
                  var span = document.getElementById('prinato');
                  var text = document.getElementById('prinato').textContent;
                  span.innerHTML = text+"<p style='color: red;'>+ "+number+"</p>";
                }else if (odob == "False") {
                  number++;
                  numberAj++;
                  var span = document.getElementById('nePrinato');
                  var text = document.getElementById('nePrinato').textContent;
                  span.innerHTML = text+"<p style='color: red;'>+ "+number+"</p>";
                }
              }
            },
            error: function(response) { 
                $('#result_form').html('Ошибка. Данные не отправлены.');
            }
        });
    }
    

    html不变。如果这可以以某种方式改进,我将不胜感激。

    • 1

相关问题

  • 第二个 Instagram 按钮的 CSS 属性

  • 由于模糊,内容不可见

  • 弹出队列。消息显示不正确

  • 是否可以在 for 循环中插入提示?

  • 如何将 JSON 请求中的信息输出到数据表 Vuetify vue.js?

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    如何从列表中打印最大元素(str 类型)的长度?

    • 2 个回答
  • Marko Smith

    如何在 PyQT5 中清除 QFrame 的内容

    • 1 个回答
  • Marko Smith

    如何将具有特定字符的字符串拆分为两个不同的列表?

    • 2 个回答
  • Marko Smith

    导航栏活动元素

    • 1 个回答
  • Marko Smith

    是否可以将文本放入数组中?[关闭]

    • 1 个回答
  • Marko Smith

    如何一次用多个分隔符拆分字符串?

    • 1 个回答
  • Marko Smith

    如何通过 ClassPath 创建 InputStream?

    • 2 个回答
  • Marko Smith

    在一个查询中连接多个表

    • 1 个回答
  • Marko Smith

    对列表列表中的所有值求和

    • 3 个回答
  • Marko Smith

    如何对齐 string.Format 中的列?

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5