Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

Array para checkbox multiseleccion de formulario php a phpmysql


Hola!,

queria comentar que he buscado la forma de llevar un checkbox multi seleccion pero no llego a nada. He recogido datos interesantes que nos pueden hacer ganar tiempo o acortar llegada a la solucion.

NECESITO QUE A UNA BD PHPMYSQL (BIEN CONFIGURADA CHECKEADO) LLEGUE UN FORM QUE TIENE :
UNA CATEGORIA Y VARIOS PRODUCTOS QUE EL USUARIO PUEDA ELEGIR, EJ:

NO DOY CON EL ARRAY...LO quiero hacer lo mas simple posible. EL PROBLEMA ES QUE ME DI CUENTA QUE ESTO ME TIENE ESTANCADO CON EL RESTO DEL AVANCE :-|

tabla productos_usuario

las columnas:
id_productos_usuarios | id_categoria_prod | id_producto1
(autoincrement) (int) yes uno solo aca llegan los diferentes productos seleccionados
ej:
id_productos_usuarios | id_categoria_prod | id_producto1
1---------------------------------2-----------------------------5
2---------------------------------2-----------------------------10
3---------------------------------2-----------------------------17
4---------------------------------3-----------------------------11
5---------------------------------3-----------------------------9

voy a estar atento a cualquier replica o pregunta
saludos y muchas gracias
0
Puntos
518
Visitas
6
Resp
Por claudiop hace 16 meses
Principiante
Respuesta #1
un dato anexo:
USÉ ESTE CODIGO QUE SEGUN AUTOR PERMITE SABER SI EL HOSTING tiene configurado habilitado MYSQLi y lo probé en el local localhost phpmyadmin con xampp y me arrojo Si el else,
Lo digo porque investigando creo que debe estar habilitado el mysqli en el phpmyadmin, PERO LO QUE NO SÉ ES SI DEBO CONFIGURAR DE ALGUNA DETERMINADA FORMA CON mysqli el codigo en las paginas php?

aca está

<?PHP
if (function_exists('mysqli_connect')) {
//mysqli está instalado
echo "Si";
} else {
echo "no";
}
?>
0
Puntos
Por claudiop hace 16 meses
Principiante
Respuesta #2
mira ver si te puede servir esto:
<form action="multiseleccion.php" method="get">

	<input type="checkbox" name="como[]" id="res1" value="Rojo">
	<label for="res1">Rojo</label>

	<input type="checkbox" name="como[]" id="res2" value="Azul">
	<label for="res2">Azul</label>

	<input type="checkbox" name="como[]" id="res3" value="Verde">
	<label for="res3">Verde</label>

	<input type="checkbox" name="como[]" id="res4" value="Negro">
	<label for="res4">Negro</label>

	<button type="submit">Enviar</button>

</form>
Los corchetes indican que todos esos campos input forman un array. Es decir, hay que poner el mismo atributo name seguido de [] en cada input que quieras que forme parte del mismo array. Si se envía el formulario mediante GET podrás ver que se envían en forma de cadena con este aspecto ejemplo: como[]=Rojo&como[]=azul.
de esta forma recogemos los valores.
Despues como lo estamos recogiendo mediante por Get
//COMPROBAMOS SI NO ESTA VACIO
if ( !empty($_GET["como"]) && is_array($_GET["como"]) ) {
//EJECUTAMOS EN ESTE CASO UNA LISTA 
    echo "<ul>";
    foreach ( $_GET["como"] as $como ) { 
            echo "<li>";
            echo $como; 
            echo "</li>"; 
     }
     echo "</ul>";
}
Esto es un pequeño ejemplo mas o menos para obtener varios array aunque hay mas forma.

0
Puntos
Por Dannus hace 16 meses
Avanzado
Respuesta #3
gracias Dannus,

me sale este aviso al enviar a la bd por metod post:

16
17

Warning: mysql_real_escape_string() expects parameter 1 to be string, array given in /Applications/XAMPP/xamppfiles/htdocs/publitaso/inc/funciones.php on line 9
Column 'id_producto1' cannot be null
0
Puntos
Por claudiop hace 16 meses
Principiante
Respuesta #4
¿Puedes er que estoy fallando en la bd que es Mysql y no es Mysqli ....?

estaes la conexion a bd:

<?php

// *** Validate request to login to this site.
if (!isset($_SESSION)) {
session_start();
}
?>
<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_conexion = "localhost";
$database_conexion = "****";
$username_conexion = "root";
$password_conexion = "";
$conexion = mysql_pconnect($hostname_conexion, $username_conexion, $password_conexion) or trigger_error(mysql_error(),E_USER_ERROR);
?>

<?php if (is_file("inc/funciones.php")){

include ("inc/funciones.php");
}
else{

include ("../inc/funciones.php"); //../ es para que se vean las funciones en paginas dentro de directorios carpetas

}

?>
0
Puntos
Por claudiop hace 16 meses
Principiante
Respuesta #5
tendria que mirar el error he hechos pruebas para que tu veas:
si solo selecciono uno por ejemplo el Verde:

me manda mediente get el color:

otro ejemplo si selecciono 3 colores rojo azul y Negro:

me manda por get esos 3 colores elegidos:

ahora tendría que mirar como lo esta recogiendo tu y el codigo que esta usando para ingresarlo en la base de datos, es de saber que no podrás mezclar Mysql y mysqli que yo sepa, por lo que veo usas la version primera.
en tu caso me imagino que quieres almacenar en una base de datos, si lo envias con este metedo obtendras todo en una linea :
res=Rojo&res=Verde&res=Negro (yo he cambiado el como[] por res que mas sencillo).
lo puedes guardar todo en una columna en la base de datos y mediante explode separar y sacar las categoria en mi caso el color


0
Puntos
Por Dannus hace 16 meses
Avanzado
Respuesta #6
hola dannus, retomando sobre:...lo puedes guardar todo en una columna en la base de datos y mediante explode separar y sacar las categoria en mi caso el color...

Puedo sacar con un echo en una pagina los datos, en este caso los colores? por ejemplo si el campo se llama colores,

seria <?php echo $row_SacarDatos['colores']; ?>

y saldria: Rojo Azul Verde etc


espero me confirmes, gracias
0
Puntos
Por claudioam hace 8 meses
Principiante
Compartir en facebook
Compartir en twitter
Compartir
Para comentar Inicia sesión o Registrate