Autor
|
Tema: Problema con checkbox (Leído 9,633 veces)
|
Angel Zero
Desconectado
Mensajes: 92
ZERO
|
hola a todos, espero esten bien . He logrado crear el checkbox, pero lo que no he podido lograr, es que la informacion se guarde en la base de datos, necesito ayuda con esto. <td class="small" align="right">Descripcion de accesorios:</td><td class="informacion" align="left"> <form action=registrar.php method=post> <input type="checkbox" name="accesorios" value="aire" > Aire <input type="checkbox" name="accesorios" value="pintura" > pintura <input type="checkbox" name="accesorios" value="portavasos" > portavasos <input type="checkbox" name="accesorios" value="rines" > rines </form> </td> </tr> este es el codigo que puse para que el checkbox saliera. <?php //1. Crear conexión a la Base de Datos $conexion = mysql_connect("localhost","root",""); if (!$conexion) { die("Fallo la conexión a la Base de Datos: " . mysql_error()); } //2. Seleccionar la Base de Datos a utilizar $seleccionar_bd = mysql_select_db("redmotor_redmotor", $conexion); if (!$seleccionar_bd) { die(“Fallo la selección de la Base de Datos: ” . mysql_error()); } //3. Tomar los campos provenientes del Formulario $aire = $_POST['accesorios']; //4. Insertar campos en la Base de Datos (No inserto el id_empleado ya que se genera automaticamente) $insertar = mysql_query(“INSERT INTO empleados (aire) VALUES (‘{$accesorios}’); if (!$insertar) { die(“Fallo en la insercion de registro en la Base de Datos: ” . mysql_error()); } //4. Cerrar conexión a la Base de Datos mysql_close($conexion); ?> no les voy a negar que no tengo idea de que hacer o como hacer el php, busque y encontre algunos, los edite segun lo que entiendo, pero aun asi no me funciona, les agradeceria toda la ayuda posible con esto. Gracias.
|
|
|
En línea
|
Zero
|
|
|
madpitbull_99
|
Intenta con la función filter_input_array().
Supongamos que tienes el siguiente formulario HTML: <form method="post" action="<?= $_SERVER['PHP_SELF']; ?>"> <input type="text" name="email" /> <input type="text" name="sevendigits" /> <input type="text" name="zerototwenty" /> <input type="checkbox" name="checkboxes[]" value="cb1" /> <input type="checkbox" name="checkboxes[]" value="cb2" /> <input type="checkbox" name="checkboxes[]" value="cb3" /> <input type="hidden" name="validurl" value="http://elhacker.net" /> <input type="submit" value="Submit" />
Haciéndolo a la vieja usanza sería así: $email = $_POST['email']; $sevendigits = $_POST['sevendigits']; $zerototwenty = $_POST['zerototwenty']; // ... and so on. // Empty email, show error or do something else. return; } if(!empty($sevendigits)){ $sevendigits = intval($sevendigits); } else { // Not seven digits } } else { // Error, sevendigits wasn't submitted. } // ... and so on, you get the idea.
Y con la función filter_input_array(): <?php // Works only in PHP 5.2.0 or later. // This ensures that $_POST['email'] is actually a // valid email address. 'email' => FILTER_VALIDATE_EMAIL, // This filter verifies that $_POST['sevendigits'] is // exactly a seven digit number using a regular expression. 'sevendigits' => array('filter' => FILTER_VALIDATE_REGEXP , 'options' => array('regexp' => '/^\d{7}$/') ), // Make sure that $_POST['zerototwenty'] is a number // 0 to 20 using the min_range and max_range specs. 'zerototwenty' => array('filter' => FILTER_VALIDATE_INT , 'options' => array('min_range' => 0, 'max_range' => 20) ), // Verify that the incoming $_POST['checkboxes'] from // the checkbox list is actual an array like we expect. 'checkboxes' => array('filter' => FILTER_VALIDATE_INT , 'flags' => FILTER_REQUIRE_ARRAY, ), // Make sure that the hidden URL field is a valid // properly formatted URL. 'validurl' => FILTER_VALIDATE_URL, // ----- A few other filter examples not included // ----- in the <form> sample above. I just felt like // ----- experimenting with a few other filters. // This field must be a boolean type. If mustbeboolean is // "true", "1", "TRUE" or some other value that represents // true then this will be true. Otherwise, it will be false. 'mustbeboolean' => array('filter' => FILTER_VALIDATE_BOOLEAN ), // Encode a URL that we need encoded from $_POST['encodeurl'] 'encodeurl' => array('filter' => FILTER_SANITIZE_ENCODED ), // This dosen't exist in the form, I'm just using it to show // what the result will be when an input doesn't exist. 'doesnotexist' => FILTER_VALIDATE_INT ); // Filter and sanitize the incoming $_POST[] with the filter above. // Here's an example of checking if $_POST['email'] made it // past our FILTER_VALIDATE_EMAIL filter. if( empty($inputs['email']) ) { echo "Empty or invalid email entered."; } ?>
Esta última función agrega una capa de seguridad/filtrado.
|
|
|
En línea
|
|
|
|
Hurubnar
|
Buenas Angel Zero, he supuesto lo que quieres hacer, pero como no me acuerdo de cómo iban los CheckBox, te lo hago con simples Text... Ya cambiarás tú lo demás. - Para hacerlo necesitarás un hosting que soporte PHP y MySQL (en el ejemplo uso miarroba.com)
- Deberás poseer una base de datos en MySQL (en este caso mysql.webcindario.com)
Y seguir los siguientes pasos: - Conectarte a la Base de Datos
- Crear tabla en la DB
- Crear el documento que contiene los <input type="text" ... (en vez de CheckBox)
- Enviar la información lograda en el doc. de los CheckBox a la tabla que hemos creado.
Establecemos la conexión con la Base de Datos ( conex.php): <?php $res = mysql_connect ("mysql.webcindario.com", "usuario", "pass"); If ($res==0){ echo ("Ha habido un error"); } if ($b==0){ // Si hay un error aparecera el siguiente mensaje echo ("Ha habido un error"); } ?>
Crearemos la tabla que guardará en un futuro la información que le enviemos ( creartabla.php): <?php include("conex.php"); //necesitamos llamar al archivo que establece la conexión valor0 VARCHAR(30) NOT NULL, valor1 VARCHAR(10) NOT NULL)",$res); If ($rs==0){ // Si hay un error aparecera el siguiente mensaje echo "Ha habido un error"; } ?>
Por último crearemos el documento en el que introduciremos los datos que luego se guardarán en la Base de Datos ( inicio.php): <html> <head> <title>Titulo de la página</title> </head> <body> <form action="inicio.php" method=post> <table> <tr> <td>Valor 0:</td> <td><input type=text name="vherri"></td> </tr> <tr> <td>Valor 1</td> <td><input type=text name="vpk"></td> </tr> <tr> <td></td> <td><input type=submit name="to" value="Entrar"> </tr> <tr> </tr> </table> </form> </body> </html> <?php // Establecemos la conexion include("conex.php"); $sarr = mysql_query("INSERT INTO nombre_de_tabla (valor0, valor1) values ('$vherri', '$vpk')", $res); if($sarr==0){ // Si hay un error aparecera el siguiente mensaje echo "Ha habido un error"; } ?>
Este último archivo ( inicio.php) será la página que verá la gente, en el que introducirán dos valores (de máximo 30 y 10 caracteres, respectivamente) y enviarán los datos a la Base de Datos (para guardarlos) al pulsar el botón "Entrar". Me ha costado lo mío escribir este sencillo código (soy un novato en PHP), no te lo hice con los CheckBox porque no me acuerdo de cómo se enviaban sus valores ni sé lo que quieres hacer con certeca (¿si está "checkeado" Aire o pintura qué valor quieres introducir en la tabla?). Si explicas con esmero qué pretendes hacer, quizá te pueda ayudar con el código real y no con un ejemplo (como ahora). Un saludo, atte. Herio
|
|
« Última modificación: 15 Octubre 2011, 13:37 pm por Herio »
|
En línea
|
|
|
|
Angel Zero
Desconectado
Mensajes: 92
ZERO
|
les mostrare graficamente que es lo que deseo hacer, pero claro esta que voy a probar con lo que me han dicho, aunque no entiendo mucho, tratare de leer y entender aca les dejo algunas imagenes con lo que se desea hacer, para que me puedan enterner mejor en esta imagen muestro la base de datos del xammp, ese espacio es donde deberia de guardarse las seleccion de los chechbox, es decir, si le doy a "Aire" deberia de guardarse aire, y si le doy a pintura deberia de guardarse "Aire, pintura". y en esta muestro la pagina donde se hace el registro de los vehiculos, y como se verian los checkbox Muchas gracias por la ayuda
|
|
|
En línea
|
Zero
|
|
|
Hurubnar
|
Aquí te dejo una página que trata sobre el mismo tema en inglés (el envío de la información de los CheckBox seleccionados a una tabla en MySQL): http://www.ozzu.com/programming-forum/mysql-php-and-checkboxes-t25807.htmlY en la segunda foto vi que tienes una opción "S<?>" cuando en realidad quieres decir "SÍ". Para solucionarlo, en vez de escribir "SÍ" escribe lo siguiente en el código HTML: SÍ
Un saludo, atte. Herio
|
|
« Última modificación: 15 Octubre 2011, 18:46 pm por Herio »
|
En línea
|
|
|
|
Hurubnar
|
Buenas: Ya te hice un ejemplo Angel Zero. Te queda modificar alguna opción (nombre_de_tala, usuario, pass, mysql.webcindario.com...). Necesitas 2 archivos: - conex.php
- cheek.php
Contenido de conex.php:
<?php $res = mysql_connect ("mysql.webcindario.com", "usuario", "pass"); If ($res==0){ echo ("Ha habido un error"); } if ($b==0){ // Si hay un error aparecera el siguiente mensaje echo ("Ha habido un error"); } ?>
Contenido de cheek.php:
<html> <body> <form action="cheeck.php" method=post> <table> <tr> <td>Valor 0</td> <td><input type="checkbox" name="val0" VALUE="Aire" />Aire</td> </tr> <tr> <td></td> <td><input type=submit name="to" value="Entrar"> </tr> </table> </form> </body> </html> <?php // Establecemos la conexion. include("conex.php"); // Comprobamos si el CheckBox de "Aire" esta seleccionado. if ($val0 != ""){ // Si "Aire" esta seleccionado introduciremos su valor en la tabla $sarr = mysql_query("INSERT INTO nombre_de_tabla (valor0) values ('$val0')", $res); if($sarr==0){ // Si hay un error aparecera el siguiente mensaje echo "Ha habido un error"; } } ?>
Espero que te sirva, cualquier duda, ya sabes. atte. Herio
|
|
« Última modificación: 15 Octubre 2011, 19:14 pm por Herio »
|
En línea
|
|
|
|
Angel Zero
Desconectado
Mensajes: 92
ZERO
|
Bueno, con este codigo logre hacer que el checkbox, me guardara en la ubicacion "accesorios" de mi base de datos <td class="small" align="right">Descripcion de accesorios:</td><td class="informacion" align="left"><input type="checkbox" name="accesorios" value="Aire" />Aire</td></tr> Ahora lo que necesito es poder poner mas de un checkbox, y que a su vez, me guarde en el mismo campo de "accesorios" valores diferentes y separados por comas. accesorios: aire, pintura, vasos, sera posible? Gracias por la ayuda
|
|
|
En línea
|
Zero
|
|
|
Hurubnar
|
Bueno, con este codigo logre hacer que el checkbox, me guardara en la ubicacion "accesorios" de mi base de datos
Citar <td class="small" align="right">Descripcion de accesorios:</td><td class="informacion" align="left"><input type="checkbox" name="accesorios" value="Aire" />Aire</td></tr> ¿Con qué código? Éso que has escrito es código HTML, nada más. Intenta explicarte mejor.
|
|
|
En línea
|
|
|
|
Angel Zero
Desconectado
Mensajes: 92
ZERO
|
pues si, es codigo html, pero eso logro ponerme la respuesta en la base de datos, ahora lo que intento es poner exactamente lo mismo, con diferentes cosas y que me guarde en el mismo lugar (accesorios)
Gracias.
|
|
|
En línea
|
Zero
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Problema con checkbox y base de datos
PHP
|
betocube
|
5
|
6,282
|
21 Abril 2011, 22:33 pm
por betocube
|
|
|
problema checkbox onchange y php [solucionado]
PHP
|
soru13
|
0
|
2,052
|
3 Julio 2012, 15:02 pm
por soru13
|
|
|
problema con checkbox (me tiene de cabeza)
Programación Visual Basic
|
rapbyone
|
3
|
2,135
|
29 Abril 2014, 19:09 pm
por abkanis
|
|
|
Problema al almacenar valor de Checkbox
Programación Visual Basic
|
rapbyone
|
2
|
3,469
|
6 Enero 2015, 13:12 pm
por leomoon45
|
|
|
Problema con checkbox
Programación Visual Basic
|
rapbyone
|
4
|
2,113
|
6 Enero 2015, 17:46 pm
por silver_axe007
|
|