Foros del Web » Programando para Internet » Javascript » Frameworks JS »

checks dinamicos

Estas en el tema de checks dinamicos en el foro de Frameworks JS en Foros del Web. Hola , tengo checkboxs generados por una consulta, y quiero pasar sus valores por ajax... pero no logro conseguirlo o recojerlo este es mi check: ...
  #1 (permalink)  
Antiguo 24/07/2009, 17:37
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 4 meses
Puntos: 9
checks dinamicos

Hola , tengo checkboxs generados por una consulta, y quiero pasar sus valores por ajax... pero no logro conseguirlo o recojerlo

este es mi check:

Código PHP:

<input name="doc" type="checkbox" value="<?php echo $id_doc?>">
segun algunos post , en ajax se recoge el value asi:

Código:
	selectdoctor=false;
	var checks = document.forms['frmcita'].elements['doc'];
	var checkboxes = [];
	for(var i = 0; i < checks.length; i++ ) {      
		if(checks[i].checked) {            
			checkboxes.push(checks[i].name + "=" + checks[i].value);
			selectdoctor=true;
		}
	}

	if(!selectdoctor){
		alert("Debe seleccionar los doctores que intervendrán en el tratamiento.");
		return false;
	}
Al recoger y validar los envio:

Código:
ajax.onreadystatechange=function(){
		if (ajax.readyState==4) {
			c.innerHTML = ajax.responseText
		}
	}
	ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	ajax.send("fecha="+fecha+"&checkboxes="+checkboxes.join("&")+.....)
}
Pero no se como recoger cada dato escogido , supongo que te lo devuelve como array , intente con esto pero me sale error al recogerlo con el php:

Código PHP:

$doctores_id 
implode('&',$_POST['checkboxes']);
for( 
$i 1$i count($doctores_id); $i ++)
{
   echo 
$doctores_id[$i];

Me falta algo????
__________________
Quitenme la vida pero no la bebida.
  #2 (permalink)  
Antiguo 24/07/2009, 18:45
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: checks dinamicos

Si hay varios checkbox con el mismo nombre, debes usar como name "nombre[]", y enviarlos así:
nombre[]=valor&nombre[]=valor&nombre=valor...
De esa forma, recibirás un array en $_POST['nombre'].
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 24/07/2009, 20:12
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 4 meses
Puntos: 9
Respuesta: checks dinamicos

hola, le agregue al nombre del checkbox los corchetes.... pero me sale un error al recibir en la pagina php.... implode() bad argument...
__________________
Quitenme la vida pero no la bebida.
  #4 (permalink)  
Antiguo 24/07/2009, 21:19
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: checks dinamicos

Haz un var_dump($_POST['nombre']) para saber cómo estás recibiendo los datos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 03/08/2009, 08:47
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 4 meses
Puntos: 9
Respuesta: checks dinamicos

Hola, disculpa que reviva el post (ya que no lo quiero repetir) ... por motivo de que estuve de viaje de vacaciones xD....

Bueno le hice var_dump($_POST['checkboxes']);

y el resultado es este:

string(7) "doc[]=4"


Que significa? espero me puedan ayudar y mil disculpas por revivir mi post
__________________
Quitenme la vida pero no la bebida.
  #6 (permalink)  
Antiguo 04/08/2009, 08:36
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: checks dinamicos

Algo estás haciendo mal, porque se envía el dato como texto. Muestra cómo tienes ahora mismo el código de enviar datos y el nombre de los checkbox.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:38.