2016-12-30 16 views
0

私はドラッグで機能を持っています&ドロップHTML5、です。私は別のdiv要素にドロップされた2つの要素を保存する必要があるので、私はそれらを保存するための構造を作った、すべてが動作している、一つのことを除いて、私のajaxのtequestは正常に動作していません。 .each()関数を介して要素を読み込み、要素が挿入されているかどうかを検出し、そうでなければDBからIDを取得し、次にteoryで各関数を2番目の要素に渡して同じプロセスですが、前に要素を挿入している場合は、そのIDをdivの「data-id」タグから取り出し、データベースのレジストリを更新します。 しかし、ajaxリクエストは2つのプロセスを別々に行います。つまり、2ラウンドを行い、2つの要素を別々に挿入します.1つではなく2つのIDを取得します。これが私のコードです。Ajaxが各関数で正しく動作していません

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のドキュメントを読んでいた、と私たちは同じブロック内の2つの要求を送信する場合、我々は、このCONFを使用することができます。

関連する問題