2016-12-30 80 views
0

我有一个功能拖下降HTML5,所以。我需要保存2个元素放在不同的div元素,所以,我做了一个结构来保存它们,所有工作,除了一件事,我的阿贾克斯tequest没有正常工作。我通过.each()函数读取元素,检测是否插入了一个元素,如果没有,我插入并从DB获取ID,然后,在每个函数传递给第二个元素并使但是,如果我之前已经插入了一个元素,则从div“data-id”标记中获取该ID并更新我的数据库中的注册表。 但是ajax请求分别做了两个过程,我的意思是做两轮,然后分别插入这两个元素,并且我得到2个ID,而不是1.这是我的代码。阿贾克斯不能正常工作与每个功能

function drop(ev) 
     { 
      ev.preventDefault(); 
      var data = ev.dataTransfer.getData("text"); 
      ev.target.appendChild(document.getElementById(data)); 
      $(".team").removeClass('selected'); 
      var torneo = $(ev.target).attr("data-tournament"); 
      var jornada = $(ev.target).attr("data-jornada"); 
      var partido = $(ev.target).attr("data-partido"); 
      var undef = 0; 
      if($(".match-container-"+partido).find("div.posiciones img").length==2) 
      { 
       $(".match-container-"+partido).find("div.posiciones img").each(function() 
       { 
        /*if(typeof $(".match-container-"+partido).find("div.posiciones img").attr('data-equipo')== 'undefined') 
        {*/ 
         alert("El parent de: "+$(this).attr('data-tooltip')+" es: "+$(this).parent().attr("data-equipo")); 
         $(".match-container-"+partido).find("div.posiciones img").attr('data-equipo',$(this).parent().attr("data-equipo")); 
        /*} 
        else 
        { 
         alert($(this).parent().attr("data-equipo")); 
        }*/ 
        var equipo = $(this).attr("data-equipo"); 
        var team = $(this).attr("data-id"); 
        console.log("entro al igual a 2"); 
        console.log("FOUNDED:"+$(".match-container-"+partido).find("div.posiciones img").length); 
        /*$(".match-number-container-"+partido).removeClass('blue') 
        $(".match-number-container-"+partido).addClass('green')*/ 
        if($(".match-container-"+partido).find("div.posiciones img").length==2) 
        { 
         $(".match-container-"+partido).find("div.posiciones img").attr('draggable','false'); 
         $(".match-container-"+partido).find("div.posiciones").attr('ondrop', 'false'); 
         $(".match-container-"+partido).find("div.posiciones").attr('ondragover', 'false'); 
        } 

        alert("Se insertará el partido: "+partido+", de la jornada: "+jornada+" del: "+torneo+" con: "+$(this).attr('data-tooltip')+" de ID "+team); 
        if(typeof $(".match-container-"+partido).attr('data-id')== 'undefined') 
        { 
         alert("Entro al AJAX de vacío"+$(".match-container-"+partido).attr('data-id')); 
         $.ajax({ 
          url: '<?=base_url();?>jornada/insertarPartido', 
          type: 'POST', 
          dataType: 'json', 
          data: {param1: jornada, 
            param2: torneo, 
            param3: team, 
            param4: undef, 
            param5: equipo, 
            param6: $(this).attr('data-tooltip')}, 
          success:function(json) 
          { 
           if(json.response_code=="200") 
           { 
            alert("insertado"); 
            $(".match-container-"+partido).attr('data-id',data.response_id); 
           } 
           console.log(data); 
          }, 
          error:function(xhre) 
          { 
           console.log("error"); 
           console.log(xhre) 
          } 
         }) 
        } 
        else 
        { 
         $.ajax({ 
          url: '<?=base_url();?>jornada/insertarPartido', 
          type: 'POST', 
          dataType: 'json', 
          data: {param1: jornada, 
            param2: torneo, 
            param3: team, 
            param4: $(".match-container-"+partido).attr('data-id'), 
            param5: equipo}, 
          success:function(json) 
          { 
           if(json.response_code=="200") 
           { 
            alert("insertado"); 
           } 
           console.log(data); 
          }, 
          error:function(xhre) 
          { 
           console.log("error"); 
           console.log(xhre) 
          } 
         }) 
        } 
       }); 
      } 

我希望你能帮助我。

回答

0

我已经解决了这个问题。 我不得不添加此属性Ajax请求:

async: false, 

我读AJAX的文档,我们可以用这个的conf,如果我们要送在同一个块中的两个请求。