Ver Mensaje Individual
  #3 (permalink)  
Antiguo 01/06/2010, 09:12
Avatar de cesarpunk
cesarpunk
 
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: AJAX y Multiple CheckBOX

Bueno, yo también tengo ese problema de usar el ajax en los checkboxes, por ejemplo tengo el checkbox:

Código:
<input type="checkbox" name="doc[]" value="<?php echo $id; ?>" />
Bien y al momento de ejecutar mi funcion ajax, me valida si es que ninguno esta seleccionado y normalmente obtiene los valores de 2 a + checks, pero no me valida si es que selecciono 1 checkbox, por lo que tuve que hacer una condicional para validar:

Código:
function Validachecks(){
	var c = document.getElementById('midiv');
	var registros = document.formulario.registros.value;
	
	var checkboxes = new Array();
	var arrClaves = new Array();
	j=0;ff=0;
	
	if(registros=='1'){
		var arr_msg = document.formulario["doc[]"].value;
		arrClaves[j]=arr_msg;
		checkboxes[ff]="&doc[]="+arrClaves[j];
		
		if(!document.registros["doc[]"].checked){

			var alerta = alert("Debe marcar los que desee eliminar");
			return false;	
		}
	}
	else{
	
		seleccionado=false;
		
		for(i=0;i < document.formulario["doc[]"].length; i++){
			if(document.formulario["doc[]"][i].checked){
	
				var arr_msg = document.formulario["doc[]"][i].value;
				arrClaves[j]=arr_msg;
				checkboxes[ff]="&doc[]="+arrClaves[j];
				ff++;
				j++;
				seleccionado=true;	
			}
		}
		
		if(!seleccionado){
				var alerta = alert("Debe marcar los que desee eliminar");
			return false;
		}

	}

	ajax=nuevoAjax();
	c.innerHTML = 'cargando...';
	ajax.open("POST", "server.php",true);
	ajax.onreadystatechange=function(){
		if (ajax.readyState==4) {
			c.innerHTML = ajax.responseText
		}
	}
	ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	ajax.send("checkboxes="+checkboxes+"&control=enviado");
}
Y en el servidor recibo los valores con el $checkbox=$_POST['doc'];
Es un método algo desesperado pero funciona

Ahora, como son un aficionado al framework prototype puedo hacer un:

Código:
$(formulario).request();
Y valido del lado del servidor, que creo que es más sencillo. Aunque espero que alguien pueda colaborar con una función para validar checkboxes en prototype que he buscado hasta en los foros de google y no he tenido exito. Espero que el ejemplo te ayude. Suerte.
__________________
Quitenme la vida pero no la bebida.