jQuery ajax-函数接受另一个函数响应

时间:2018-07-13 19:30:04

标签: jquery ajax

当我同时在我的应用程序中调用多个ajax请求时(这是必要的),我遇到了非常烦人的情况。 我的后端响应是这样构建的:

  

{“一个”:{“ id”:“ 75068337”,“值”:“ 1”},“两个”:{“ id”:“ 7449461”,“值”:“ 1”},“事件“:[]}

但是有时候“事件”对象可以包含一些元素,然后看起来像

  

{“一个”:{“ id”:“ 75095540”,“值”:“ 1”,“结果”:“ 1”},“两个”:{“ id”:“ 7452784”,“值” :“ 1”,“结果”:“ 1”},“事件”:{“ 1531501188”:“事件1”,“ 1531501405”:“事件2”,“ 1531504270”:“事件3”,“ 1531507336”:“事件4 “}}

现在,..每个ajax调用都会被触发,具体取决于是否选中了具有给定ID的复选框,并且它正在调用唯一的url,然后在成功后将响应值放入html元素中,这些值也由它们的ID标识。

主要麻烦在这里:选中复选框之一,并且他的响应给​​出带有元素的“事件”时,所有其他ajax调用都将它们带到它们的html元素。

当我通过输入ajax.php?id = 1-2-3后端分别检查每个响应时,会给我正确的响应,没有任何事件。

我的代码怎么了?

Ajax:

    var idezy = "1-2-3"; // 1-2 - values needed in backend, 3 - html element ID
    var identifier = "checkbox1"; // ID of checkbox to check if it's checked before calling ajax again

    function bier(idezy, identifier) {
        iczs = idezy.split('-');
        $.ajax({
            url: 'ajax.php?id=' + idezy,
            dataType: "json",
            success: function(results) {
                $.each(results, function(index, value) {
                    if (index == "one") {
                        $('#oneb' + value["id"]).html(value["value"]);
                        $('#onew' + value["id"]).html(value["result"]);
                    }

                    if (index == "two") {
                        $('#twob' + value["id"]).html(value["value"]);
                        $('#twow' + value["id"]).html(value["result"]);
                    }

                    if (index == "events") {
                        $.each(value, function(idx, vale) {
                            $(vale).insertBefore($('table#eventy' + iczs[2] + ' tbody#eventz' + iczs[2] + ' > tr:first'));
                        });
                    }
                });

                if ($("#" + identifier).is(':checked')) {
                    bier(idezy, identifier);
                }
            }
        });
    }
<table>
 <tbody>
  <tr>
    <td><input type="checkbox" id="checkbox1"></td>
    <td>
    <table id='eventy1'>
      <thead>
      <th>Event time</th>
      <th>Event desc.</th>
      </thead>
      <tbody id='eventz1'>
      <tr id='dummy'><td>time0</td><td>description0</td></tr>  
      </tbody>
      </table>
    </td>
  </tr>
  
  <tr>
    <td><input type="checkbox" id="checkbox2"></td>
    <td>
    <table id='eventy2'>
      <thead>
      <th>Event time</th>
      <th>Event desc.</th>
      </thead>
      <tbody id='eventz2'>
      <tr id='dummy'><td>time0</td><td>description0</td></tr>  
      </tbody>
      </table>
    </td>
  </tr>
  
  <tr>
    <td><input type="checkbox" id="checkbox3"></td>
    <td>
    <table id='eventy3'>
      <thead>
      <th>Event time</th>
      <th>Event desc.</th>
      </thead>
      <tbody id='eventz3'>
      <tr id='dummy'><td>time0</td><td>description0</td></tr>  
      </tbody>
      </table>
    </td>
  </tr>

 </tbody>
</table>

0 个答案:

没有答案