¿Me podrían orientar?

  • Autor Autor xcodex
  • Fecha de inicio Fecha de inicio
X

xcodex

Hola chicos!, estoy bastante perdido.
Necesito almacenar 3 opciones de un checkbox en una BD (estoy usando PHP/MySQL). Y luego serán mostrados de la siguiente manera: "Mostrar usuarios que marcaron X opción", etc.
Estoy intenando con un Array pero no logro conseguirlo, ya estoy con dolor de cabeza de tanto intentarlo.

Estoy buscando en Google y no encuentro nada específico.

¿Alguien podría darme una idea general, por favor? 🙂
 
Última edición por un moderador:
¿Podrías poner algo de código para saber exáctamente dónde estás atascado?
 
php - getting a checkbox array value from POST - Stack Overflow

Osea que tienes tres checkbox y deseas almacenar si están checked o no cierto ???

Más o menos se podría hacer así:

Con javascript obtener el valor de los checkbox javascript - Get the value of checked checkbox? - Stack Overflow

Luego hacer un post con los valores por ejemplo al archivo php mi_base_de_datos.php

Luego en mi_base_de_datos verifico que los datos sean correctos $_POST['xxx']

Posteriormente inserto esto en la base de datos...

Ya luego hago una consulta a la base de datos para mostrar los estados de cada checkbox y los imprimió donde quieras.
 
php - getting a checkbox array value from POST - Stack Overflow

Osea que tienes tres checkbox y deseas almacenar si están checked o no cierto ???

Más o menos se podría hacer así:

Con javascript obtener el valor de los checkbox javascript - Get the value of checked checkbox? - Stack Overflow

Luego hacer un post con los valores por ejemplo al archivo php mi_base_de_datos.php

Luego en mi_base_de_datos verifico que los datos sean correctos $_POST['xxx']

Posteriormente inserto esto en la base de datos...

Ya luego hago una consulta a la base de datos para mostrar los estados de cada checkbox y los imprimió donde quieras.

Ya me voy orientando de a poco 🙂
¿Lo de obtener el valor se hace si o si con Javascript?

Tengo esto (es solo el fragmento donde estoy atascado), y se ingresa todo menos las opciones seleccionadas en los checkbox:
PHP:
$opcion = $_POST['opcion'];
        
foreach($opcion as $seleccionada){ //Para comprobar que me seleccionó los checkbox
   echo $seleccionada;
   echo "<br>";
}

        $sql_insertar_agregar_usuario = 'INSERT INTO nombretabla (nombreusuario,contrasena,opcionseleccionada)
        VALUES (?,?,?)';
        $sentencia_insertar = $pdo->prepare($sql_insertar_agregar_usuario);
        $sentencia_insertar->execute(array($nombre_usuario,$contrasena,$opcionseleccionada));
 
Ya me voy orientando de a poco 🙂
¿Lo de obtener el valor se hace si o si con Javascript?

Tengo esto (es solo el fragmento donde estoy atascado), y se ingresa todo menos las opciones seleccionadas en los checkbox:
PHP:
$opcion = $_POST['opcion'];
        
foreach($opcion as $seleccionada){ //Para comprobar que me seleccionó los checkbox
   echo $seleccionada;
   echo "<br>";
}

        $sql_insertar_agregar_usuario = 'INSERT INTO nombretabla (nombreusuario,contrasena,opcionseleccionada)
        VALUES (?,?,?)';
        $sentencia_insertar = $pdo->prepare($sql_insertar_agregar_usuario);
        $sentencia_insertar->execute(array($nombre_usuario,$contrasena,$opcionseleccionada));

Mira te dejo un ejemplo más o menos:

index.html
HTML:
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
</head>
<body>
<!-- Ejemplo uno recomendado
<form action="recibir.php" method="post">
    <input id="condition" name="condition" type="checkbox">Acepto condiciones</input><br>
    <input id="condition1" name="condition1" type="checkbox">Otro valor</input><br>
    <input id="condition2" name="condition2" type="checkbox">Otro valor1</input><br>
    <input type="submit">
</form> -->

<!-- Ejemplo dos
<form action="recibir.php" method="post">
    <input id="condition" name="selections[]" type="checkbox" value="aceptar condiciones">Acepto condiciones</input><br>
    <input id="condition1" name="selections[]" type="checkbox" value="otro valor">Otro valor</input><br>
    <input id="condition2" name="selections[]" type="checkbox" value="otro valor1">Otro valor1</input><br>
    <input type="submit">
</form>
 -->
</body>
</html>

recibir.php
PHP:
<?php
/* Ejemplo 1 recomendado --- verifico si la variable esta definida y no es nula entonces esta checked de lo contrario unchecked

$condition = isset($_POST["condition"]) ? "checked" : "unchecked";
$condition1 = isset($_POST["condition1"]) ? "checked" : "unchecked";
$condition2 = isset($_POST["condition2"]) ? "checked" : "uncheckeds";

echo " -> " . $condition . "<br>";
echo " -> " . $condition1 . "<br>";
echo " -> " . $condition2 . "<br>";

*/

/* Ejemplo 2
if(isset($_POST['selections'])){
    $selections = $_POST['selections'];
    if(in_array('aceptar condiciones', $selections)){
        echo " -> aceptar condiciones = checked <br>";
    }else{
        echo " -> aceptar condiciones = unchecked <br>";
    }
    if(in_array('otro valor', $selections)){
        echo " -> otro valor = checked <br>";
    }else{
        echo " -> otro valor = unchecked <br>";
    }
    if(in_array('otro valor1', $selections)){
        echo " -> otro valor1 = checked <br>";
    }else{
        echo " -> otro valor1 = unchecked <br>";
    }
}else{
    echo " -> aceptar condiciones = unchecked <br>";
    echo " -> otro valor = unchecked <br>";
    echo " -> otro valor1 = unchecked <br>";
}
*/
?>

Quita los /* y <!-- para ver los ejemplos

Con javascript también se puede pero bueno eso es por ejemplo para usar ajax enviar el post sin recargar el navegador.
 
Última edición:
Mira te dejo un ejemplo más o menos:

index.html
HTML:
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
</head>
<body>
<!-- Ejemplo uno recomendado
<form action="https://forobeta.com/recibir.php" method="post">
    <input id="condition" name="condition" type="checkbox">Acepto condiciones</input><br>
    <input id="condition1" name="condition1" type="checkbox">Otro valor</input><br>
    <input id="condition2" name="condition2" type="checkbox">Otro valor1</input><br>
    <input type="submit">
</form> -->

<!-- Ejemplo dos
<form action="https://forobeta.com/recibir.php" method="post">
    <input id="condition" name="selections[]" type="checkbox" value="aceptar condiciones">Acepto condiciones</input><br>
    <input id="condition1" name="selections[]" type="checkbox" value="otro valor">Otro valor</input><br>
    <input id="condition2" name="selections[]" type="checkbox" value="otro valor1">Otro valor1</input><br>
    <input type="submit">
</form>
 -->
</body>
</html>

recibir.php
PHP:
<?php
/* Ejemplo 1 recomendado --- verifico si la variable esta definida y no es nula entonces esta checked de lo contrario unchecked

$condition = isset($_POST["condition"]) ? "checked" : "unchecked";
$condition1 = isset($_POST["condition1"]) ? "checked" : "unchecked";
$condition2 = isset($_POST["condition2"]) ? "checked" : "uncheckeds";

echo " -> " . $condition . "<br>";
echo " -> " . $condition1 . "<br>";
echo " -> " . $condition2 . "<br>";

*/

/* Ejemplo 2
if(isset($_POST['selections'])){
    $selections = $_POST['selections'];
    if(in_array('aceptar condiciones', $selections)){
        echo " -> aceptar condiciones = checked <br>";
    }else{
        echo " -> aceptar condiciones = unchecked <br>";
    }
    if(in_array('otro valor', $selections)){
        echo " -> otro valor = checked <br>";
    }else{
        echo " -> otro valor = unchecked <br>";
    }
    if(in_array('otro valor1', $selections)){
        echo " -> otro valor1 = checked <br>";
    }else{
        echo " -> otro valor1 = unchecked <br>";
    }
}else{
    echo " -> aceptar condiciones = unchecked <br>";
    echo " -> otro valor = unchecked <br>";
    echo " -> otro valor1 = unchecked <br>";
}
*/
?>

Quita los /* y <!-- para ver los ejemplos

Con javascript también se puede pero bueno eso es por ejemplo para usar ajax enviar el post sin recargar el navegador.

Muchísimas gracias!!, eso ya lo logro entender.
El problema es que quede en la BD de tal manera que luego sea fácil poder "llamarlos" con un echo.
Muchos me dicen con un array asociativo, y otros con Json jaja
 
Muchísimas gracias!!, eso ya lo logro entender.
El problema es que quede en la BD de tal manera que luego sea fácil poder "llamarlos" con un echo.
Muchos me dicen con un array asociativo, y otros con Json jaja

Mira por ejemplo yo prefiero el ejemplo numero uno esto por que me permite manejar cada variable independientemente.

Por ejemplo tengo tres checkbox, entonces cada uno tendrá su name, por ejemplo:

-> checkbox1 -> name -> activar_name
-> checkbox2 -> name -> activar_apellido
-> checkbox2 -> name -> activar_otro

Entonces yo los inserto en la base de datos independientemente:

Cada uno con su columna en la base de datos:

activar_name | activar_apellido | activar_otro
check/unchek | check/unchek | check/unchek

A menos que sea algo de muchos valores se puede guardar como json en una sola columna...

En el ejemplo numero uno es fácil mostrar:

Llamo desde la base de datos, entonces imprimo la columna necesaria en el checkbox:

HTML:
<input id="condition" name="condition" type="checkbox"<?php echo ($condition['activar_name'] === 'checked' ? ' checked="checked"' : '') ?>>Otro</input>
 
Mira por ejemplo yo prefiero el ejemplo numero uno esto por que me permite manejar cada variable independientemente.

Por ejemplo tengo tres checkbox, entonces cada uno tendrá su name, por ejemplo:

-> checkbox1 -> name -> activar_name
-> checkbox2 -> name -> activar_apellido
-> checkbox2 -> name -> activar_otro

Entonces yo los inserto en la base de datos independientemente:

Cada uno con su columna en la base de datos:

activar_name | activar_apellido | activar_otro
check/unchek | check/unchek | check/unchek

A menos que sea algo de muchos valores se puede guardar como json en una sola columna...

En el ejemplo numero uno es fácil mostrar:

Llamo desde la base de datos, entonces imprimo la columna necesaria en el checkbox:

HTML:
<input id="condition" name="condition" type="checkbox"<?php echo ($condition['activar_name'] === 'checked' ? ' checked="checked"' : '') ?>>Otro</input>

Lo entiendo perfectamente y te agradezco mucho tu respuesta, peeeeeeeeeeeeeeeeero
lo que necesito justamente es con varios valores (hasta 11), y no tengo la mas remota idea como agregarlo en formato Json a la BD para luego poder ordenar por ejemplo: "ver todos los usuarios que marcaron X cantidad de opciones".
 
Lo entiendo perfectamente y te agradezco mucho tu respuesta, peeeeeeeeeeeeeeeeero
lo que necesito justamente es con varios valores (hasta 11), y no tengo la mas remota idea como agregarlo en formato Json a la BD para luego poder ordenar por ejemplo: "ver todos los usuarios que marcaron X cantidad de opciones".

Pues se podrían almacenar en formato json en la base de datos es muy sencillo:

PHP and JSON – json_encode and json_decode – Must Be Built

PHP: json_decode - Manual con el assoc

hacer un llamado de todos los usuarios se puede usar en sql limit 0, 5 que traiga los primeros 5 usuarios.

y hacer el json-decode y filtrar con condicionales
 
Atrás
Arriba