Ajax无法正常使用每个函数

时间:2016-12-30 21:54:41

标签: javascript php jquery html ajax

我有一个拖放HTML5的功能,所以。我需要保存掉在不同div元素中的2个元素,所以,我做了一个结构来保存它们,一切正常,除了一件事,我的ajax tequest没有正常工作。我通过.each()函数读取元素,我检测是否已经插入了一个元素,如果没有,我插入并从DB中获取ID,然后,在teory中,每个函数传递给第二个元素并使相同的过程,但是,如果我之前已插入一个元素,从div“data-id”标记中获取该ID并更新我的数据库中的注册表。 但是ajax请求分别进行两个进程,我的意思是,进行2轮,然后分别插入2个元素,我得到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)
                            }
                        })
                    }
                });
            }

我希望你能帮助我。

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。 我必须将此属性添加到ajax请求中:

async: false,

我正在阅读ajax文档,如果我们想在同一个块中发送两个请求,我们可以使用此conf。