# Ejercicios - for (2)

Nota: Los valores introducidos por el usuario se deben comprobar y, si los valores no son correctos, se debe indicar el motivo al usuario .

## for (2) 1 - Tabla de una fila con casillas de verificación

Escriba un programa que muestre una tabla de una fila con casillas de verificación en cada celda y cuente las casillas marcadas. El programa constará de tres páginas:

- En la primera página se solicita el tamaño de la tabla.
- En la segunda página se muestra la tabla (con un límite de 20 filas/columnas).
- En la tercera página se indican los números de las casillas de verificación marcadas.

Enlace a ejercicio For (2) 1

### Comentarios

- Segunda página:
  - Las casillas de verificación deben tener como nombre elementos de una matriz (por ejemplo, c[1], c[2], etc.).
  - Debe haber un control oculto (de tipo hidden) que contenga el tamaño de la tabla.
- Tercera página:
  - Para recoger la matriz se debe utilizar la función recogeMatriz() explicada en la lección de recogida de datos.
  - Se debe comprobar que el contenido de la matriz (tanto índices como valores) es correcto (índices dentro del rango, valores on, etc.)
  - Para escribir los índices recibidos se puede utilizar un bucle foreach.

## for (2) 2 - Tabla cuadrada con casillas de verificación

Escriba un programa que muestre una tabla cuadrada con casillas de verificación en cada celda y cuente las casillas marcadas. El programa constará de tres páginas:

- En la primera página se solicita el tamaño de la tabla.
- En la segunda página se muestra la tabla (con un límite de 20 filas/columnas).
- En la tercera página se indican los números de las casillas de verificación marcadas.

Enlace a ejercicio For (2) 2

### Comentarios

- Segunda página:
  - Las casillas de verificación deben tener como nombre elementos de una matriz de una dimensión (por ejemplo, c[1], c[2], etc.).
  - Debe haber un control oculto (de tipo hidden) que contenga el tamaño de la tabla o el número de celdas.

- Tercera página:

  - Para recoger la matriz se debe utilizar la función recogeMatriz() explicada en la lección de recogida de datos.
  - Se debe comprobar que el contenido de la matriz (tanto índices como valores) es correcto (índices dentro del rango, valores on, etc.)
  - Para escribir los índices recibidos se puede utilizar un bucle foreach.

## for (2) 3 - Tabla cuadrada con casillas de verificación (2)

Escriba un programa que muestre una tabla cuadrada con casillas de verificación en cada celda y cuente las casillas marcadas. El programa constará de tres páginas:

- En la primera página se solicita el tamaño de la tabla.
- En la segunda página se muestra la tabla (con un límite de 20 filas/columnas).
- En la tercera página se indican los números de las casillas de verificación marcadas.

Enlace a ejercicio For (2) 3

### Comentarios

- Segunda página:
  - Las casillas de verificación deben tener como nombre elementos de una matriz bidimensional en la que el primer índice indique el número de tabla y el segundo el número de celda (por ejemplo, c[1][1], c[2][2], ..., c[2][1], c[2][2], etc.).
  - Debe haber un control oculto (de tipo hidden) que contenga el tamaño de la tabla o el número de celdas.
- Tercera página:
  - Para recoger la matriz se debe utilizar una función recogeMatriz2() para recoger una matriz bidimensional, basada en la función recogeMatriz() explicada en la lección de recogida de datos. Por ejemplo:

        <?php
        function recogeMatriz2($var)
        {
            $tmpMatriz = array();
            if (isset($_REQUEST[$var]) && is_array($_REQUEST[$var])) {
                foreach ($_REQUEST[$var] as $indice => $fila) {
                    $tmp = strip_tags(trim(htmlspecialchars($indice)));
                    if (get_magic_quotes_gpc()) {
                        $tmp = stripslashes($tmp);
                    }
                    $indiceLimpio = $tmp;
                    if (is_array($fila)) {
                        foreach ($fila as $indice2 => $valor) {
                            $tmp = strip_tags(trim(htmlspecialchars($indice2)));
                            if (get_magic_quotes_gpc()) {
                                $tmp = stripslashes($tmp);
                            }
                            $indice2Limpio = $tmp;

                            $tmp = strip_tags(trim(htmlspecialchars($valor)));
                            if (get_magic_quotes_gpc()) {
                                $tmp = stripslashes($tmp);
                            }
                            $valorLimpio  = $tmp;

                            $tmpMatriz[$indiceLimpio][$indice2Limpio] = $valorLimpio;
                        }
                    }
                }
            }
            return $tmpMatriz;
        }
        ?>

  - Se debe comprobar que el contenido de la matriz (tanto índices como valores) es correcto (índices dentro del rango, valores on, etc.)
  - Para escribir los índices recibidos se puede utilizar un bucle foreach.

## for (2) 4 - Tablas cuadradas con casillas de verificación

Escriba un programa que muestre varias tablas cuadradas con casillas de verificación en cada celda y cuente las casillas marcadas. El programa constará de tres páginas.

- En la primera página se solicita el número y tamaño de las tablas.
- En la segunda página se muestran las tablas (con un límite de 20 tablas/filas/columnas).
- En la tercera página se indican las casillas marcadas en cada tabla.

Enlace a ejercicio For (2) 4

### Comentarios

- Segunda página:
  - Las casillas de verificación deben tener como nombre elementos de una matriz bidimensional en la que el primer índice indique el número de tabla y el segundo el número de celda (por ejemplo, c[1][1], c[2][2], ..., c[2][1], c[2][2], etc.).
  - Debe haber dos controles ocultos (de tipo hidden) que contengan el número de tablas y el tamaño de las tablas.
- Tercera página:
  - Para recoger la matriz se puede utilizar la función recogeMatriz2() del ejercicio anterior.
  - Se debe comprobar que el contenido de la matriz (tanto índices como valores) es correcto (índices dentro del rango, valores on, etc.).

Esta obra está bajo una licencia de Creative Commons.