PHP - Rescatar valor checkbox

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

Rescatar valor checkbox

Publicado por josema (9 intervenciones) el 17/02/2018 20:50:46
Hola a todos, estoy atascado...
Tengo un formulario con este código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<form method="POST" action="registra.php">
 
    <p>Nombre: <input type="text" name="nombre" size="20"></p>
    <p>Fecha: <input type="text" value="<?php echo date("Y-m-d");?>" name="fecha"
 
size="10" readonly="true">
    <p>¿ES un ciclomotor?<input type="checkbox" name=check>
    <p>Marca y Modelo: <input type="text" name="marca" size="20"></p>
    <p>Matrícula: <input type="text" name="matricula" size="20"></p>
    <p>Valor Fiscal: <input type="number" name="valor" size="20"></p>
 
    <p><input type="submit" value="Guardar datos" name="B1"></p>
 
</form>

Los datos los recogo con post en este otro fichero registra.php:

1
2
3
4
5
6
7
8
9
10
<?php
 
// Recibimos por POST los datos procedentes del formulario
 
$nombre = $_POST["nombre"];
$marca = $_POST["marca"];
$check = $_POST["check"];
$matricula = $_POST["matricula"];
$fecha = $_POST["fecha"];
$valor = $_POST["valor"];


$_GRABAR_SQL = "INSERT INTO $tabla_db1 (nombre,marca,matricula,fecha,valor,TPO,dgt,colegio,honorarios,iva,total) VALUES

('$nombre','$marca','$matricula','$fecha','$valor','$valor'*0.06,'54','3.75','54.5','54.5'*'0.21','TPO'+'dgt'+'colegio'+'$valor'*'0.06'+'123.69')";
mysql_query($_GRABAR_SQL);

Pero me da un error cuando proceso este último fichero, me dice:
Undefined index: check in C:\wamp\www\presupuestos\registra.php on line 14
Y no lo veo....
Ayuda!!!
Gracias.
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
sin imagen de perfil
Val: 604
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Rescatar valor checkbox

Publicado por Miguel (218 intervenciones) el 18/02/2018 05:32:49
1) La el valor de la propiedad 'name' del checkbox va entre comillas (como todos los valores).

1
<input type="checkbox" name="check">


2) Los formularios suelen enviar solamente los inputs (checkbox y radio) que están 'checkeados'. Para que no te muestre el 'undefined index' captura la advertencia con:

1
2
// anteponiendo una @ para evitar la advertencia en caso que el checkbox esté deshabilitado y no se haya enviado
$check = @boolval($_POST["check"]);
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: 19
Ha aumentado su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

Rescatar valor checkbox

Publicado por josema (9 intervenciones) el 18/02/2018 12:05:33
Hola Miguel, gracias por tu respuesta pero tras ponerlo todo como me indicas el código no funciona y no guarda nada en la base de datos... Ya no sé como hacerlo....

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
<?php
 
// Recibimos por POST los datos procedentes del formulario
 
$nombre = $_POST["nombre"];
$marca = $_POST["marca"];
// anteponiendo una @ para evitar la advertencia en caso que el checkbox esté deshabilitado y no se haya enviado
$check = @boolval($_POST["check"]);
$matricula = $_POST["matricula"];
$fecha = $_POST["fecha"];
$valor = $_POST["valor"];
 
 
// Abrimos la conexion a la base de datos
include("abre_conexion.php");
 
$_GRABAR_SQL = "INSERT INTO $tabla_db1 (nombre,marca,matricula,fecha,valor,TPO,dgt,colegio,honorarios,iva,total) VALUES

('$nombre','$marca','$matricula','$fecha','$valor','$valor'*0.06,'54','3.75','54.5','54.5'*'0.21','TPO'+'dgt'+'colegio'+'$valor'*'0.06'+'123.69','$check')";
mysql_query($_GRABAR_SQL);
 
// Cerramos la conexion a la base de datos
include("cierra_conexion.php");
 
// Confirmamos que el registro ha sido insertado con exito
 
echo "
<p>Los datos han sido guardados con exito.</p>

<p><a href='javascript:history.go(-1)'>VOLVER ATRÁS</a></p>
";
?>
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: 604
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Rescatar valor checkbox

Publicado por Miguel (218 intervenciones) el 19/02/2018 02:00:32
Tu query no está escrita correctamente, mira en los VALUES no están definidos de forma correcta los valores (incluso parece que hay más de los que deberían).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 19
Ha aumentado su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

Rescatar valor checkbox

Publicado por josema (9 intervenciones) el 19/02/2018 20:30:41
Hola de nuevo Miguel, he revisado el valor value del formulario y lo he asignado a valor 1, y he cambiado el fichero php que recibe los datos para almacenar y trabajar más comodamente con variables, pero sigue sin funcionarme. En cuanto activo la línea
$check = @boolval($_POST["check"]); ya no funciona....
Te adjunto los ficheros para verlo mejor, así como un pantallazo de las propiedades de los campos que almacena el dato del check, que es el campo número 13 de la tabla que se llama 'ciclomotor'.
Si crees que hay alguna otra manera mejor de hacerlo para que funcione... te agradecería me indicaras.
Mil Gracias.
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: 19
Ha aumentado su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

Rescatar valor checkbox

Publicado por josema (9 intervenciones) el 20/02/2018 22:14:21
Ya he conseguido solucionarlo utilizando if (isset($_POST["check"]))

Gracias de todas maneras!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar