Comunidad de diseño web y desarrollo en internet online

Filtrar datos por Checkbox con PHP

Citar            
MensajeEscrito el 30 May 2009 04:54 pm
¡Hola! ¿Qué tal?

Verán, es que ando haciendo el proyecto de fin de curso, y tengo que conseguir lo siguiente.

Hay una lista de empleados, cada uno tiene un checkbox, yo lo que tengo que hacer que a los que tenga el Checkbox activado, enviarle un email.

El único problema que tengo es que no consigo filtrar la selección del checkbox.

Código :

      <?php
           $i=1;
         while ($fila = mysql_fetch_array($resul))
         {
         echo "<br><input name='empleado$i' type='checkbox' id='empleado' value='$fila[ID]'/>$fila[Nombre]<br>";
         $i=$i+1;
         }

   ?>


Eso hace que muestre la lista de los empleados que hay en la base de Datos, y a cada uno les da el nombre empleado1, empleado2, asi sucesivamente, y el valor es el ID de la base de datos, que es 1, 2...etc.

Luego al enviarlo al "prueba.php" tengo que filtrar que solo los checkeados son los que les envie el mensaje. Ahí es donde me quedo, y nose como hacerlo funcionar.

Pueden verlo en www.enviomensaje.info/aunospocos.php

Un saludo, y muchas gracias.

Por Cloud_NSA

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 May 2009 04:54 pm

Por Cloud_NSA

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 May 2009 05:49 pm
para empezar, en el value de los checkbox ponle solo la ID del empleado, sin nada delante, luego, en prueba.php mete un print_r($_POST); y veras los datos que recibes del formulario, a partir de ahi solo es saber tratarlo.

Por oscarga

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 May 2009 05:49 pm
PD: Cambia method="GET" por method="POST"

Por oscarga

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 31 May 2009 12:25 am
No se como pasarle el valor de un atributo ademas del value, en este caso checked, con el cual podrias discriminar.

Si no estoy mal, no deberias utilizar el mismo id para todo checkbox.

Ahora, una forma en que hago esto seria enviandole un request al servidor mediante javascript(uso jquery para enviar los datos AJAX), con el cual recorro los checkbox filtrando en funcion del atributo checked, y armando la url con los parametros.

:cry:

Por shakka

Claber

189 de clabLevel

2 tutoriales

Genero:Masculino  

mozilla
Citar            
MensajeEscrito el 31 May 2009 12:38 am
:shock: No me hagas caso, no es necesario javascript, simplemente los checkbox no marcados no se envian en el request, pero debes indicar el mismo valor del atributo name para todos

Código :

<input name="empleado[]" type="checkbox" value="1" />
<input name="empleado[]" type="checkbox" value="2" />


Código :

$checked = $_POST['empleado'];

foreach($checked as $i) {
  echo $i; // imprimira el dato del atributo value
}


^^

Por shakka

Claber

189 de clabLevel

2 tutoriales

Genero:Masculino  

mozilla
Citar            
MensajeEscrito el 31 May 2009 12:43 am
Como veras, los checkbox se revisen en un array, asi que segun como lo vayas a manejar puedes verificar si algun indice en concreto a sido seleccionado, es decir, si el indice correspondiente a un checkbox existe en el array

existe /* ? */ = array_key_exists(0 , $_POST['empleado']);

...

:alabado:

Por shakka

Claber

189 de clabLevel

2 tutoriales

Genero:Masculino  

mozilla
Citar            
MensajeEscrito el 31 May 2009 09:04 pm
Pues nada chicos, no consigo hacerlo funcionar de ninguna manera.

Yo lo que busco, es que, los checkbox que esten activados, los meta en una especie de array, y que un while los recorra uno por uno, y envie un email a cada uno de ellos.

cosa como:

while ($array tenga valor)
{
mail()
}

Mientras que haya un dato del checkbox sin recorrer, que se siga repitiendo el while, y coja el email desde la base de datos al ID que le corresponde.

Pero no lo consigo...

Por Cloud_NSA

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 31 May 2009 11:28 pm
y con lo anterior lo probo?

Por shakka

Claber

189 de clabLevel

2 tutoriales

Genero:Masculino  

mozilla

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.