Foros del Web » Programando para Internet » PHP »

recoger valores de checkbox

Estas en el tema de recoger valores de checkbox en el foro de PHP en Foros del Web. Hace ya varias semanas estuve haciendo un formulario sin tener idea de php... todo parecía ir bien hasta que tenía que recoger valores de unos ...
  #1 (permalink)  
Antiguo 21/05/2008, 11:18
 
Fecha de Ingreso: enero-2006
Mensajes: 208
Antigüedad: 18 años, 2 meses
Puntos: 3
recoger valores de checkbox




Hace ya varias semanas estuve haciendo un formulario sin tener idea de php... todo parecía ir bien hasta que tenía que recoger valores de unos checkbox. He mirado manuales, navegado por internet, buscado en los temas de este foro... pero sigo confusa, y muy perdida.... totalmente bloqueada. Espero que alguien me pueda echar una mano..... Bueno, el tema es el siguiente: no sé como recoger los valores de checkbox. Entre otros campos de recogida, tengo 4 apartados (tipos de actividades) que se recogen con checkbox. Por ej:

<input type="checkbox" name="bailes[]" value="salsa">
<input type="checkbox" name="bailes[]" value="funky">
<input type="checkbox" name="bailes[]" value="flamenco">
<input type="checkbox" name="bailes[]" value="dvientre">

Bien, el código php es el siguiente:

Código PHP:
<?
include ("base.php");



$nombre $_POST['nombre'];
$apellidos $_POST['apellidos'];
$sexo $_POST['sexo'];
$edad $_POST['edad'];
$packhara $_POST["packhara"]; 
$artesm $_POST["artesm"]; 
$bailes $_POST["bailes"]; 
$otros $_POST["otros"]; 
$email $_POST['email'];




$result mysql_query("insert into usuarios (nombre,apellidos,sexo,edad,packhara,artesm,bailes,otros,email) values ('$nombre','$apellidos','$sexo', '$edad','$packhara[$i]','$artesm[$i]','$bailes[$i]','$otros[$i]','$email')");

if (
$result)

{
echo 
'Usuario '.$nombre.' registrado con &eacute;xito.';
}

else
{
echo 
'Ususario '.$nombre.' no puede ser registrado';
}

?>
He utilizado implode, y no se que otras cosas más pero no me funciona..... por favor, agradecería mucho la ayuda. Muchas gracias.
  #2 (permalink)  
Antiguo 21/05/2008, 11:23
 
Fecha de Ingreso: enero-2008
Mensajes: 163
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: recoger valores de checkbox

no inserta o no consigues agarrar los valores del checkbox? donde le das valor a $i
  #3 (permalink)  
Antiguo 21/05/2008, 11:49
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: recoger valores de checkbox

si, tambien recuerda que $bailes es un arreglo... ¿todas tus otras variables tambien????

tambien, el campo bailes de MySQL que tipo es.... ENUM??? VARCHAR o ke pasa???
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 22/05/2008, 02:03
 
Fecha de Ingreso: enero-2006
Mensajes: 208
Antigüedad: 18 años, 2 meses
Puntos: 3
Respuesta: recoger valores de checkbox

'packhara', 'artesm', 'bailes' y 'otros' son variables relacionadas con el checkbox... Y son arrays.

Llegué a poder recoger los valores de checkbox, pero si la persona marcaba por ejemplo dos bailes pues lo recogía como dos registros. Y a mí me interesa recogerlo en uno.

Son campos tipo VARCHAR
  #5 (permalink)  
Antiguo 26/05/2008, 09:40
 
Fecha de Ingreso: enero-2006
Mensajes: 208
Antigüedad: 18 años, 2 meses
Puntos: 3
Respuesta: recoger valores de checkbox

nadie me puede ayudar? :((
  #6 (permalink)  
Antiguo 26/05/2008, 09:50
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: recoger valores de checkbox

lo ke pasa es ke viene un UN solo registro, el arreglo bailes...
entonces, lo que quieres que es???

que solo te entrege el primero, usa el indice cero bailes[0] sino... iteras el arreglo para eligir solo un valor...

bueno, si esto no es asi... y lo quieres guardar como VARCHAR usa... un join() para pegar el arreglo, y separarlo... si kieres, porke no se va a guardar como arreglo...

bueno, la verdad ni entendi... porke ¿¿de donde viene el uso de $i ???
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 26/05/2008, 10:11
 
Fecha de Ingreso: enero-2008
Mensajes: 163
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: recoger valores de checkbox

utilisa el implode o el join que es la misma pero no utilises packhara[$i],bailes[$i] en el insert si haces por ejemplo
Código PHP:
<?php 
$prueba
=$_POST['bailes'];
$x=implode(",",$prueba);
echo 
$x;
?>
te va a imprimir en pantalla los valores que halla seleccionado el usuario separado por comas espero que esa sea tu pregunta y en el insert introduces el valor de $x enlugar de bailes[$i]
  #8 (permalink)  
Antiguo 26/05/2008, 17:36
 
Fecha de Ingreso: enero-2006
Mensajes: 208
Antigüedad: 18 años, 2 meses
Puntos: 3
Respuesta: recoger valores de checkbox

Gracias Bleckfala, pero sigo teniendo un problema.... si no se selecciona ningún checkbox me sale este mensaje: Warning: implode(): Bad arguments.
  #9 (permalink)  
Antiguo 26/05/2008, 22:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: recoger valores de checkbox

se debe a ke usas el valor, sin importarte si existe o no.... ese es un error de advertencia...

deberias, usar esto... (comprobar la existencia antes de...)

Código PHP:
$prueba = isset($_POST['bailes'])?
  
$_POST['bailes']: array(); // debe ser un arreglo, obvio
$x=implode(","$prueba
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 26/05/2008, 23:28
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Pregunta Respuesta: recoger valores de checkbox

Cita:
Iniciado por hema Ver Mensaje



Hace ya varias semanas estuve haciendo un formulario sin tener idea de php... todo parecía ir bien hasta que tenía que recoger valores de unos checkbox. He mirado manuales, navegado por internet, buscado en los temas de este foro... pero sigo confusa, y muy perdida.... totalmente bloqueada. Espero que alguien me pueda echar una mano..... Bueno, el tema es el siguiente: no sé como recoger los valores de checkbox. Entre otros campos de recogida, tengo 4 apartados (tipos de actividades) que se recogen con checkbox. Por ej:

<input type="checkbox" name="bailes[]" value="salsa">
<input type="checkbox" name="bailes[]" value="funky">
<input type="checkbox" name="bailes[]" value="flamenco">
<input type="checkbox" name="bailes[]" value="dvientre">

Bien, el código php es el siguiente:

Código PHP:
<?
include ("base.php");



$nombre $_POST['nombre'];
$apellidos $_POST['apellidos'];
$sexo $_POST['sexo'];
$edad $_POST['edad'];
$packhara $_POST["packhara"]; 
$artesm $_POST["artesm"]; 
$bailes $_POST["bailes"]; 
$otros $_POST["otros"]; 
$email $_POST['email'];




$result mysql_query("insert into usuarios (nombre,apellidos,sexo,edad,packhara,artesm,bailes,otros,email) values ('$nombre','$apellidos','$sexo', '$edad','$packhara[$i]','$artesm[$i]','$bailes[$i]','$otros[$i]','$email')");

if (
$result)

{
echo 
'Usuario '.$nombre.' registrado con &eacute;xito.';
}

else
{
echo 
'Ususario '.$nombre.' no puede ser registrado';
}

?>
He utilizado implode, y no se que otras cosas más pero no me funciona..... por favor, agradecería mucho la ayuda. Muchas gracias.
aqui hay algo que no entiendo si son valores distintos pues tienes de dos formas
1.- que a cada checkbox le pongas un name distintos y ya de lado del server preguntas por cada uno de ellos pero en caso digamos que sean muchos pues si que cosa estar preguntando uno por uno si fue activado

2.- la otra es como lo estas haciendo nada mas que yo los recojo asi

<?
$cuantos = count($_POST['bailes']);
if($cuantos!=0)
{
for($i=0;$i<$cuantos;$i++)
{
echo $_POST['bailes'][$i])."<br>";
}
}
else
{
echo "ninguno seleccionado";
}
?>

saludos no se era esto lo que deseas
__________________
gerardo
  #11 (permalink)  
Antiguo 27/05/2008, 07:12
 
Fecha de Ingreso: enero-2006
Mensajes: 208
Antigüedad: 18 años, 2 meses
Puntos: 3
Respuesta: recoger valores de checkbox

bleckfala, gracias, tu código me sirvió..... aunque reconozco que no estoy entendiend o muy bien como utilizar el 'isset' y el 'implode'. Algun tutorial sencillo para yo poder entender esto?

chalchis, gracias también... aunque este script más bien recogía cuantos valores se habían seleccionado en vez de cuales. De todas maneras muchas gracias.
  #12 (permalink)  
Antiguo 28/05/2008, 11:49
 
Fecha de Ingreso: enero-2008
Mensajes: 163
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: recoger valores de checkbox

el isset solo determina si la variable esta definida o no
http://mx2.php.net/isset
http://mx2.php.net/implode

estos no son manuales realmente solamente es la explicacion de tales funciones no creo que halla manuales pero en fin espero te sirvan hema
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:30.