Categorías en checkbox + PHP

Whose

Buenas!
Hasta ahora, cuando quería usar categorías en formularios (Para un sistema de noticias por ejemplo) siempre había utilizado la etiqueta < select > y < option > para las categorías pero me resulta más útil utilizar un checkbox para cada categoría.

Yo antes metía todas las ids en un array y luego me encargaba de pasarlo a la base de datos pero no se me ocurre como hacerlo con los checkbox ya que cada categoría va en un campo de formulario diferente ¿Se os ocurre algo sencillo para tener en un array todas las id's de los checkbox seleccionados?

Thx y un saludo.

SnAoW

Buenas Whose, te escrito ya tres veces la respuesta pero cuando voy por la mitad me arrepiento y pienso que no es lo que tu quieres, me puedes explicar un poco mejor lo que es?
He trabajado en la web de una inmobiliaria y utilicé mucho los checkbox creo que puedo ayudarte pero no entiendo bien lo que quieres hacer, lo siento.

Un saludo

edit: a ver si es esto [codigo mal escrito pero esque tengo prisa]

los checkbox supongamos que estarian al enviar el formulario:

casas = on
pisos = off
garajes = on

if ($casas == 'on') { $casasON = 'casas' ; }

if ($pisos == 'on') { $pisosON = 'pisos' ; }

if ($garajes == 'on') { $garajesON = 'garajes' ; }

$CASILLASTOTALESON = "$casasON $pisosON $garajesON";

Con lo cual hay puedes recoger en una variable todas las que esten ON, porque $casillastotaleson seria: casas garajes.

Y si no querias eso dimelo porque ya no te entiendo, un saludo y aver si hay suerte y sirve xD (no creo)

Beavis

Si llamas a los checkbox con un nombre como name="categoria[1]",name="categoria[2]",etc Al enviar el formulario dentro de $POST vas a tener todos los checkbox que hayas marcado dentro del mismo array ($POST['categoria'] , los que no marcas no se envian)

EnZo

Como dice pollo es la mejor manera, yo eso lo usaba para el select multimple. A mi select multiple le llamaba name="myselect[]" y todos los que se seleccionen se van metiendo en el array.

PHP P0wa!

SeiYa

Yo lo hacía con un foreach, mira:

foreach ($_POST as $Tema => $Valor)
{

}

En $Valor se guarda el valor del campo y en $Tema el nombre del campo.

Entonces, solo hacer un if $Valor == 'on' y trabajarás con todos los check activados.

Si tienes más checkboxes comprueba que el nombre por si las moscas.

Bueno, ya sabes XD

Whose

Gracias a todos, con la solución de Pollo lo he dejado listo en un momento.

Usuarios habituales

  • Whose
  • SeiYa
  • EnZo
  • Beavis
  • snaow