PHP - Problema con While

 
Vista:
sin imagen de perfil

Problema con While

Publicado por Emi (3 intervenciones) el 28/10/2016 12:25:25
Hola a todos!!! Intentaré explicar mi problema de la manera más sencilla posible. Mi idea inicial, es hacer un while dentro de otro while con el siguiente objetivo: Tengo un campo, en el cual introduzco un número. En base a ese número me imprime x campos de formulario (dónde X es el número que introduzco). Así que, si introduzco un 3, me imprime 3 campos, asta ahí todo correcto. Ahora, cada uno de esos 3 campos, puede tener subcampos, es decir, adicionalmente, cada campo imprimido, va a tener otro apartado para insertar un número, y en base a ese número, me imprimirá subcampos dentro del campo principal, siendo así que tengo 3 campos, y cada campo puede tener su propia cantidad de subcampos.... El problema empieza al inprimir los subcampos, algo falla que no lo hace. Aquí adjunto el código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<form action="" method="POST">
 
    Añadir Descripciones:<input type="text" name="des" size="2" placeholder="" value="<?=isset($_POST['des']) ? $_POST['des'] : ''?>"/> <input type="submit" name="val" value="Aceptar"/><br/><br/>
    <?php
    if(isset($_POST['val'])){
 
        $contador=1;
        while ($contador<= $_POST['des']) {
            $descri = "descr".$contador;
            $valid = "vali".$contador;
            $tar = "tar".$contador;
            //Estas variables son, para insertar los datos en la bbdd sin que se repita el nombre en el form.
        ?>
    Descripción<?=$contador?>:<input type="text" name="<?=$descri?>" size="20" placeholder="" value="<?=isset($_POST[$descri]) ? $_POST[$descri] : ''?>"/>
    Añadir Tareas:<input type="text" name="<?=$tar?>" size="2" placeholder="" value=""/> <input type="submit" name="<?=$valid?>" value="Aceptar"/><br/><br/>
        <?php
             //Aquí es donde empieza a fallar, porque al darle un número en añadir tareas me limpia el form
            if(isset($_POST[$valid])){
            $cont=1;
                while ($cont<= $_POST[$tar]) {
                    $tarea = "tare".$cont;
        ?>
        Tarea<?=$cont?>:<input type="text" name="<?=$tarea?>" size="20" placeholder="" value=""/><br/>
        <?php
                $cont++;
                }
            }
        $contador++;
        }
    }
 
    ?>
    <input type="submit" name="save" value="Guardar"/>
    <input type="reset" name="erase" value="Borrar"><br/><br/>
</form>
¿Alguna idea?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema con While

Publicado por Alejandro (839 intervenciones) el 28/10/2016 16:57:11
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Solo se envia un type="submit" a la vez, de forma que cuando envias con name="<?=$valid?>" al recibir deja de existir name="val".
Cambia la linea if(isset($_POST['val'])){ por if(isset($_POST['des'])){ y veras como funciona, solo te quedaria resolver que muestre las distintas tareas en las distintas descripciones a la vez, que el problema es el mismo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar