Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/04/2018, 08:05
sentoki79
 
Fecha de Ingreso: octubre-2013
Mensajes: 79
Antigüedad: 11 años, 1 mes
Puntos: 1
Array en un if coge valor vacio aunque no cumpla la condicion del if

Muy buenas a tod@s,


me esta ocurriendo lo que describo en el titulo. Pretendo comprobar que ckeckbox han sido seleccionados, para despues pasar su Id que esta en le atributo value, por AJAX al servidor y despues borrar esos campos de la base de datos segun su Id.
Todo va bien, se determina cuales han sido seleccionados, pero el problema esta cuando en un condicionante quiero ver si ese checkbox ha sido seleccionado entonces recoja el value en un array. El problema es que si el checkbox no ha sido seleccionado en la condición el array guarda una variable vacia, cuando no debería porque no cumple la condición (he comprobado con un alert dentro del if que cuando no se cumple la condición no entra dentro del if, pero el array si que guarda un espacio en memoria).
Se sabe que ocurre esto, porque le pongo un alert(Id) y me devuelve (,,12) que en este caso es si hay tres checkbox, y selecciono el ultimo me devuelve el Id del checkbox seleccionado, pero los espacios en blanco me estan dando problemas en el lado servidor, porque no me borra ese Id especifico.
Tengo la solución en le lado del servidor para solucionarlo. Pero no me parece que eso sea lo correcto, la solución debería estar en el lado cliente.
Ademas que es un proyecto final de ciclo, y debo ajustarlo a lo correcto.

Agradeceria mucho ideas para solucionarlo desde el JS.

Adjunto codigo:


function confirmacion(){

var form=document.getElementById("formBorrado").length

var chek=document.getElementById("formBorrado").checkb ox

var checkbox = document.getElementsByName('caja');
var long=checkbox.length

var Id=new Array();

if (confirm('¿Estas seguro que deseas eliminar?')){

for(i=0;i<long;i++){

//AQUI ES DONDE SE PRODUCE EL PROBLEMA QUE EL ARRAY GUARDA UN ESPACIO EN LA MEMORIA AUNQUE NO CUMPLA LA CONDICION DEL IF

var isChecked = document.getElementById('caja'+[i])
if(isChecked.checked===true){
}
}

alert(Id)
var IdTotales= Id.toString();
var datos= "caja="+IdTotales
var xhr = nuevoAjax();
var url = "BorradoFront";
xhr.open("POST",url, true );
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");

xhr.send(datos);
}
else{
alert("No ha seleccionado alguna de las casillas para poder borrar")
return false;
}

}


P.D. siento no haber puesto el codigo formateado, hace mucho que no publicaba aqui y no me acordaba que tenia que formatearlo al publicar el mensaje, me temo que editandolo ya no me permite formatearlo.

Gracias de antemano por la ayuda!

Saludos

Última edición por sentoki79; 20/04/2018 a las 08:15