PHP - Insertar valores dependiendo de un checkbox

 
Vista:
sin imagen de perfil
Val: 7
Ha aumentado su posición en 23 puestos en PHP (en relación al último mes)
Gráfica de PHP

Insertar valores dependiendo de un checkbox

Publicado por Carlos Alberto (4 intervenciones) el 03/05/2019 02:01:05
tabla

tengo una tabla de las caracteristicas mostradas en la imagen, teniendo en cuenta q cada checbox tiene un valor en numeros, lo que quiero es q cuando yo haga click en aceptar el me envie a otro archivo solo los valores de los checkbox que esten marcados
tengo construidos los checkbox asi.
1
<input type="checkbox" name="idr[]" checked value="1">

Alguna solución? Gracias por la ayuda
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 Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Insertar valores dependiendo de un checkbox

Publicado por Mauro (1037 intervenciones) el 03/05/2019 14:09:10
¿Todos los checkbox tienen value=1?

¿Podrías mostrar el código completo de tu formulario?
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
sin imagen de perfil
Val: 7
Ha aumentado su posición en 23 puestos en PHP (en relación al último mes)
Gráfica de PHP

Insertar valores dependiendo de un checkbox

Publicado por Carlos Alberto (4 intervenciones) el 03/05/2019 15:13:51
Agradezco tu atencion en relidad los id vienen de una tabla en mysqli por lo cual el codigo del formulario lo tengo asi:
(teniendo en cuenta q la conexion a la base corresponde a $conn, y la tabla se llama pagos y el id es unico para cada caso
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$pr = mysqli_query($conn,"select * from pagos order by id");
echo'
<form method="post" action="ver_pagos.php">
<table>
<tr>
<td>id</td>
<td>valor</td>
</tr>';
while($prs = mysqli_fetch_assoc($pr)){
echo'
<tr>
<td><input type="checkbox" name="idr[]" checked value="'.$prs[id].'"></td>
<td><input type="number" step="any" name="monto"></td>
</tr>';
}
echo'<tr>
<td colspan="2"><button>Aceptar</button></td>
</tr></table>'
ese es basicamente el formulario, de nuevo muchas gracias por la atención y ayuda
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
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Insertar valores dependiendo de un checkbox

Publicado por Mauro (1037 intervenciones) el 03/05/2019 19:49:46
Pues para comenzar te recomiendo escribir el HTML fuera de PHP, algo como:

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
<?php
 
$pr = mysqli_query($conn, "select * from pagos order by id");
?>
<form method="post" action="ver_pagos.php">
    <table>
        <tr>
            <td>id</td>
            <td>valor</td>
        </tr>
        <?php
        while ($prs = mysqli_fetch_assoc($pr)) {
            ?>
            <tr>
                <td><input type="checkbox" name="idr[]" checked value="<?php echo $prs[id];?>"></td>
                <td><input type="number" step="any" name="monto"></td>
            </tr>
            <?php
        }
        ?>
        <tr>
            <td colspan="2">
                <button>Aceptar</button>
            </td>
        </tr>
    </table>
</form>

Con esto el HTML al postear sólo enviará los valores de los checkboxes marcados... el problema es que no sabrás conectarlos con el id de la DB... prueba modificar el nombre de los checkboxes para que incluyan el id que rescatas de la base:

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
<?php
 
$pr = mysqli_query($conn, "select * from pagos order by id");
?>
<form method="post" action="ver_pagos.php">
    <table>
        <tr>
            <td>id</td>
            <td>valor</td>
        </tr>
        <?php
        while ($prs = mysqli_fetch_assoc($pr)) {
            ?>
            <tr>
                <td><input type="checkbox" name="idr[<?php echo $pr['id']; ?>" checked value="1"></td>
                <td><input type="number" step="any" name="monto"></td>
            </tr>
            <?php
        }
        ?>
        <tr>
            <td colspan="2">
                <button>Aceptar</button>
            </td>
        </tr>
    </table>
</form>
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

Insertar valores dependiendo de un checkbox

Publicado por Fidel Ibañez (2 intervenciones) el 07/05/2019 00:53:50
Hola
a mi si me gusta mesclar el php con el html ya que es mas fácil para mi, es cuestión de gustos... hice un pequeño código algo rápido así que puedes optimizarlo mucho mas, y te recomiendo que lo hagas...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$pr = mysqli_query($conn, "select * from pagos order by id");
echo "<form method='post' action='ver_pagos.php'>
          <table> <tr>  <td>id</td> <td>valor</td> </tr>";
$ct=1;
while ($prs = mysqli_fetch_assoc($pr)) {
           echo "<tr>   <td><input type='checkbox' name= '$ct'  checked></td>
                <td><input type="number" step="any" name="monto"></td>
                     </tr>";
                     $ct++;
        }
echo " <tr> <td colspan='2'><button type='submit'>Aceptar</button></td></tr>
    </table>
</form>";
?>
/* ver_pagos.php */
$r = $_POST ; /* información que llega del primer archivo */
$n = max ($r) ; /* variable maxima que llega del primer archivo */
$control =0;
for ($x=0; $x<$n;$x++){   if(isset($x)) { $arreglo1[$control]= $r[$x];  $control++;  }  }
 
return $arreglo1 ; /* en este arreglo estan todos los valores seleccionados en el archivo anterior, desde el primer valor hasta el ultimo */


Espero te sirva
Atentamente
Fidel Ibañez C.
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
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Insertar valores dependiendo de un checkbox

Publicado por Mauro (1037 intervenciones) el 07/05/2019 18:47:24
Yo te recomiendo intentar no mezclar el html dentro del php (como mucho, hacer lo contrario, es decir, cuando hagas un archivo que es esencialmente html pero necesitas algo de control como para hacer ciclos, condicionales, etc... le puedes meter php para lograrlo).

La idea es mantener más claramente separada la lógica del negocio (especialmente los accesos a bases de datos) de la presentación.

De este modo es como funcionan los motores de templating (Por ejemplo Smarty o [url=https://twig.symfony.com/doc/2.x/]Twig/url]) y en general es una buena práctica (para hacer el código más mantenible en el tiempo).
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