elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
26 Mayo 2012, 14:24  


Tema destacado: Deseas probar algunas mejoras a la interfaz del foro? Prueba cake! acerca de

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Problema con checkbox
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con checkbox  (Leído 842 veces)
Angel Zero

Desconectado Desconectado

Mensajes: 88


ZERO


Ver Perfil WWW
Problema con checkbox
« en: 15 Octubre 2011, 07:05 »

hola a todos, espero esten bien :D.

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.

Citar
<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.

Citar
<?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
Moderador Global
***
Desconectado Desconectado

Mensajes: 1.897



Ver Perfil WWW
Re: Problema con checkbox
« Respuesta #1 en: 15 Octubre 2011, 10:01 »

Intenta con la función filter_input_array().

Código
$aDatos = filter_input_array(INPUT_POST);

Supongamos que tienes el siguiente formulario HTML:


Código
<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" />
 
</form>

Haciéndolo a la vieja usanza sería así:

Código
$email = $_POST['email'];
$sevendigits = $_POST['sevendigits'];
$zerototwenty = $_POST['zerototwenty'];
// ... and so on.
 
if(empty($email)){
 // Empty email, show error or do something else.
 return;
}
 
if(!empty($sevendigits)){
 if(preg_match("/^(\d{7})$/",$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():

Código
<?php
 
// Works only in PHP 5.2.0 or later.
 
$filter = array(
 
  // 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.
$inputs = filter_input_array( INPUT_POST, $filter );
 
// 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



«Si quieres la paz prepárate para la guerra» Flavius Vegetius

[Taller]Instalación/Configuración y Teoría de Servicios en Red
Hurubnar


Desconectado Desconectado

Mensajes: 300



Ver Perfil WWW
Re: Problema con checkbox
« Respuesta #2 en: 15 Octubre 2011, 13:28 »

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):
Código
<?php
$res = mysql_connect ("mysql.webcindario.com", "usuario", "pass");
If ($res==0){
echo ("Ha habido un error");
}
 
$b = mysql_select_db("el_DB_que_usaras");
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):
Código
<?php
include("conex.php"); //necesitamos llamar al archivo que establece la conexión
 
$rs = mysql_query ("CREATE TABLE nombre_de_tabla(
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):
Código
<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 por Herio » En línea
Angel Zero

Desconectado Desconectado

Mensajes: 88


ZERO


Ver Perfil WWW
Re: Problema con checkbox
« Respuesta #3 en: 15 Octubre 2011, 17:12 »

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


Desconectado Desconectado

Mensajes: 300



Ver Perfil WWW
Re: Problema con checkbox
« Respuesta #4 en: 15 Octubre 2011, 18:44 »

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.html

Y 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:
Código
S&Iacute

Un saludo,
atte. Herio
« Última modificación: 15 Octubre 2011, 18:46 por Herio » En línea
Hurubnar


Desconectado Desconectado

Mensajes: 300



Ver Perfil WWW
Re: Problema con checkbox
« Respuesta #5 en: 15 Octubre 2011, 19:10 »

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:
    Código
    <?php
    $res = mysql_connect ("mysql.webcindario.com", "usuario", "pass");
    If ($res==0){
    echo ("Ha habido un error");
    }
     
    $b = mysql_select_db("el_DB_que_usaras");
    if ($b==0){
    // Si hay un error aparecera el siguiente mensaje
    echo ("Ha habido un error");
    }
    ?>

    Contenido de cheek.php:
    Código
    <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 por Herio » En línea
Angel Zero

Desconectado Desconectado

Mensajes: 88


ZERO


Ver Perfil WWW
Re: Problema con checkbox
« Respuesta #6 en: 15 Octubre 2011, 20:12 »

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>

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.

Citar
accesorios: aire, pintura, vasos,

sera posible? Gracias por la ayuda :D
En línea

Zero
Hurubnar


Desconectado Desconectado

Mensajes: 300



Ver Perfil WWW
Re: Problema con checkbox
« Respuesta #7 en: 15 Octubre 2011, 20:46 »

Citar
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.  :-X
En línea
Angel Zero

Desconectado Desconectado

Mensajes: 88


ZERO


Ver Perfil WWW
Re: Problema con checkbox
« Respuesta #8 en: 16 Octubre 2011, 16:37 »

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
Hurubnar


Desconectado Desconectado

Mensajes: 300



Ver Perfil WWW
Re: Problema con checkbox
« Respuesta #9 en: 16 Octubre 2011, 17:05 »

Es imposible que con solamente código HTML introduzcas datos en un DB, pero creo adivinar lo que estás haciendo... Quizás te ayude esta explicación: http://www.forosdelweb.com/f21/mysql-varios-valores-uno-109735/

Un saludo,
atte. Herio

PD Tienes nuevo MP
En línea
madpitbull_99
Moderador Global
***
Desconectado Desconectado

Mensajes: 1.897



Ver Perfil WWW
Re: Problema con checkbox
« Respuesta #10 en: 16 Octubre 2011, 20:50 »

Ya lo mencioné más arriba, para el tema de los checkbox el formulario se haría así:

  <input type="checkbox" name="checkboxes[]" value="cb1" />
  <input type="checkbox" name="checkboxes[]" value="cb2" />
  <input type="checkbox" name="checkboxes[]" value="cb3" />


¿Has intentado con eso?

En línea



«Si quieres la paz prepárate para la guerra» Flavius Vegetius

[Taller]Instalación/Configuración y Teoría de Servicios en Red
Hurubnar


Desconectado Desconectado

Mensajes: 300



Ver Perfil WWW
Re: Problema con checkbox
« Respuesta #11 en: 16 Octubre 2011, 21:29 »

Citar
Ya lo mencioné más arriba
Cierto, no me he dado cuenta.

AZ, la cosa consiste en darles a todos los CheckBoxes el mismo nombre a la vez que un diferente valor, concatenar los valores con las comas e introducirlo en el DB. Aun y todo, si no entiendes bien HTML, PHP y/o MySQL quizás te sea difícil hacerlo...

Un saludo,
atte. Herio
En línea
Angel Zero

Desconectado Desconectado

Mensajes: 88


ZERO


Ver Perfil WWW
Re: Problema con checkbox
« Respuesta #12 en: 17 Octubre 2011, 16:15 »

lo de los nombres diferentes ya lo he usado, y no me ha funcionado.

Citar
<input type="checkbox" name="accesorios" value="Aire" />Aire
<input type="checkbox" name="accesorios" value="Pintura" />Pintura
<input type="checkbox" name="accesorios" value="Vasos" />Vasos

Y este es el codigo php que me esta ingresando los datos a la base de datos, solo que estaba demasiado escondido y no lo habia encontrado.

Citar
$accesorios = mysql_real_escape_string($datos['accesorios']);
$consulta="INSERT INTO vehiculo (accesorios) VALUES ('$accesorios')";

me demore en contestar porque hasta hoy pude volver a tocar esto... lo del link lo lei y aun asi no he podido, les agradezco la ayuda ;)
« Última modificación: 17 Octubre 2011, 16:40 por Angel Zero » En línea

Zero
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con los checkbox
Desarrollo Web
Engel_1_2 1 350 Último mensaje 16 Junio 2004, 09:41
por byebye
Problema en validar checkbox y radio button con javascript
Desarrollo Web
lemerchapra 3 2,578 Último mensaje 30 Noviembre 2006, 17:50
por alone-in-the-chat
Problema al capturar un solo elemento checkbox ..
Desarrollo Web
Hadess_inf 1 1,644 Último mensaje 5 Junio 2009, 19:58
por El As del Club Paris
checkbox
Desarrollo Web
angelmadrid 1 803 Último mensaje 16 Noviembre 2009, 00:57
por H4RR13R
Problema con checkbox y base de datos
PHP
betocube 5 2,015 Último mensaje 21 Abril 2011, 22:33
por betocube
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines