我有一个拖放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)
}
})
}
});
}
我希望你能帮助我。
答案 0 :(得分:0)
我已经解决了这个问题。 我必须将此属性添加到ajax请求中:
async: false,
我正在阅读ajax文档,如果我们想在同一个块中发送两个请求,我们可以使用此conf。