Código PHP:
<input type=checkbox name='opcion[]'>
<input type=checkbox name='opcion[]'>
<input type=checkbox name='opcion[]'>
| |||
Guardar un array de checkbox Tengo un formulario en PHP con un array de checkbox y necesito guardar tanto los que están marcados como los que no lo están. Código PHP: |
| |||
Debes definir "values" a tus checkbox .. Código PHP: Ese array lo puedes recorrer con un bucle foreach() simple: Código PHP: Es decir .. tus "opciones" (checkbox) deberías generarlos con PHP .. tal vez de datos que vengan de un array o de una Consulta SQL a a una BBDD (o a "mano" pero replicando sus valores en un array en PHP mínimo). Por ejemplo: Código PHP: Ahora es cosa de que recorras con un bucle foreach() por ejemplo el array que contiene todas las opciones y compares con el que sólo tiene las seleccionasdas para poder decir "esta se seleccionó y la otra no ..". Código PHP: PD2: No he probado la última parte (verificación de los seleccionados o no ...). Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| |||
Si exacto, mediante un formulario con method=POST. En el ejemplo que me has puesto... Código PHP: Ahora bien, el problema lo tengo en el array $opciones, porque no se como rellenarlo. Te comento mi caso: Tengo una lista desplegable con un máximo de 7 opciones. Entonces dependiendo de las opciones, creo el formulario con tantos checkboxs como opciones elegidas. Estoy intentando guardar en un array supongamos $opciones, los valores del array checkbox pero únicamente me coge el valor del primer checkbox y me repite su valor tantas veces como opciones elegidas. Una vez pueda conseguir los valores de todos los checkboxs en el array $opciones seguiría con lo que me has indicado. Saludos. |
| |||
Expón el código que usas .. tal vez ahí se vea claro tu fallo. pero según comentas .. en el bucle que crea tus N elementos de formulario con un bucle (supongo que un for()?) .. ahí es donde debes crear tu array .. el detalle estará ya que tu array no es fija (como para meterla en un config.php por ejemplo y llamarla en los dos scripts de proceso o en el que uses ya definida y fija) .. tendrás que propagar ese array (con los N elementos que se formaron) al script de proceso de los checkboxs, esto lo puedes hacer por el URL también (en un campo hidden del formulario y serializado) o bien en una variable de sesión por ejemplo. Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| |||
Si he probado de crear un <input type=text hidden> y poner aquí el valor del checkbox, incluso también he probado usando una variable $_SESSION, pero el problema es el mismo ya que no lleno bien el array $opciones. Te expongo el código: Código PHP: Saludos. |
| |||
En el "value" de tus checkbox es donde debes poner tu valor que al seleccionar es lo que implicarà esa selecciòn .. no un "true" .. eso ya lo sabes si pasa a PHP al ser seleccionada. Tampoco puedes con un bucle for() ir generando N inputs de ese estilo con la opción "checked" .. fijate en el còdigo HTML que generas .. Tampoco debes componer en HTML una "tabla" por lìnea que armas .. debe ser sòlo una "fila" en HTML. Y no uses "printf()" .. eso es complicarte la vida, meter el "motor" de expresiones regulares para una tarèa que es muhco màs simple y natural con un "echo" y concatenando. Código PHP: Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| |||
Muchas gracias por la gran ayuda. Por fín me ha salido. Expongo el código que he usado: Código PHP: PD2: En el caso de no haber ningún checkbox marcado he realizado un for para llenar el contenido del array a “no”. PD3: Para mostrar el formulario el <table> lo he puesto dentro del for, ya que sino no me dejaba la linea de separacion. Muchas gracias. Espero le sirva a más de uno. Saludos. |
| |||
Si con tu array "opcion2" estás generando un array para luego recorrerlo y hacer algùn otro proceso .. No corresponde que lo hagas en $_POST (que es el array superglobal que PHP usa para indicar los datos que por ese mètodo te lleguen a tu script. Usa tus própios arrays: $opcion2[$i]="SI"; .. o lo que corresponda para darle valor. Realmente el proceso que hagas lo podrìas (y deberìas) hacerlo en esos bucles que ya procesas. Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |