Foros del Web » Programando para Internet » PHP »

problemas con el checkbox

Estas en el tema de problemas con el checkbox en el foro de PHP en Foros del Web. Hola... soy nuevo en php y estoy haciendo una pagina web con base de datos..por favor necesito ayuda. lo que necesito es saber si puedo ...
  #1 (permalink)  
Antiguo 07/03/2008, 21:57
 
Fecha de Ingreso: marzo-2008
Mensajes: 22
Antigüedad: 11 años, 9 meses
Puntos: 0
problemas con el checkbox

Hola... soy nuevo en php y estoy haciendo una pagina web con base de datos..por favor necesito ayuda. lo que necesito es saber si puedo marcar mas de un checkbox y guardarlo en mi base de datos..el problema q teng es: q si marca mas de un checkbox pero no guarda los checkbox marcados en caso q se marq mas de uno.. este es el codigo que tengo por ahora:
esto es donde estan los formularios:
<title>Documento sin t&iacute;tulo</title>
</head>
<?php // CONECCION A LA BASE DE DATOS
$conexion=mysql_connect("localhost", "root");
mysql_select_db("base", $conexion);
?>

<form action="procesar.php" method="post">

<table width="200" border="1">
<td>
<div align="center"><font color="#000000">
<div align="center"><font face="Courier New, Courier, monospace" size="3">
Nombre</font><br>
<input name="nombre" type="text" />
<br>
</div>
</div></td>
</table><br />
Relaciòn con otras empresas<br />
<table border="1">
<tr>
<td>Si</td>
<td>
<input type="radio" name="opcion" id="si" value="Si" />
</td>
</tr>
<tr>
<td>No</td>
<td><input type="radio" name="opcion" id="no" value="No" /></td>
</tr>
</table><br />
Comentarios:<br />
<textarea name="comentario" cols="25" rows="8"></textarea><br /><br />
Personas involucradas:<br />
<table width="700" border="1">
<tr>
<th width="200">Nombre:</th>
<th width="200">CURP:</th>
<th width="280">Cargo o actividad desempeñada:</th>
</tr>
<tr>
<td> <input name="personas_involucradas" type="text" /><br /></td>
<td> <input name="curp" type="text" /><br /></td>
<td> <input name="cargo_actividad" type="text" /><br /></td>
</tr>
<tr>
<td> <input name="personas_involucradas" type="text" /><br /></td>
<td> <input name="curp" type="text" /><br /></td>
<td> <input name="cargo_actividad" type="text" /><br /></td>
</tr>
</table><br />
Apoyos:<br />
<table border="1">
<tr>
<td>1. Diseño industrial</td>
<td><input type="checkbox" name="apoyo1" value="diseño industrial" /></td>
<td>7. Capacitaciòn</td>
<td><input type="checkbox" name="apoyo2" value="capacitacion" /></td>
</tr>
<tr>
<td>2. Diseño de imagen<br>corporativa</td>
<td><input type="checkbox" name="apoyo3" value="diseño de imagen" /></td>
<td>8. Aspectos juridicos</td>
<td><input type="checkbox" name="apoyo4" value="aspectos juridicos" /></td>
</tr>
<tr>
<td>3. Procesos productivos</td>
<td><input type="checkbox" name="apoyo5" value="proceso productivo" /></td>
<td>9. Vinculaciòn</td>
<td><input type="checkbox" name="apoyo6" value="vinculacion" /></td>
</tr>
<tr>
<td>4. Administraciòn</td>
<td><input type="checkbox" name="apoyo7" value="administracion" /></td>
<td>10. Planeaciòn estrategica</td>
<td><input type="checkbox" name="apoyo8" value="planeacion estrategica" /></td>
</tr>
<tr>
<td>6. Propiedad industrial</td>
<td><input type="checkbox" name="apoyo9" value="propiedad industrial" /></td>
</tr>
<tr>
<td>6. Mercadotecnia</td>
<td><input type="checkbox" name="apoyo10" value="mercadotecnia" /></td>
</tr>

</table><br>

<input type="submit" value="enviar">
</form>
<body>
</body>
</html>

Aqui esta el procesamiento de lso formularios:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>
<?php

include "Conectar.php";

$nombre = $_POST['nombre'];
$apoyo = $_POST['apoyo'];
$comentario= $_POST['comentario'];
$personas_involucradas = $_POST['personas_involucradas'];
$relacion_empresa = $_POST['opcion'];
$curp = $_POST['curp'];
$cargo_actividad = $_POST['cargo_actividad'];


mysql_connect('localhost','root');
mysql_select_db('base');



$sql="INSERT INTO clientes (nombre,apoyo,comentarios,personas_involucradas,re lacion_empresa,curp,cargo_actividad) VALUES ('$nombre','$apoyo','$comentario', '$personas_involucradas', '$relacion_empresa', '$curp', '$cargo_actividad')";

mysql_query($sql) or die("Eror en mysql".mysql_error());



echo "Los datos han sido introducidos satisfactoriamente";


?>
<body>
</body>
</html>
  #2 (permalink)  
Antiguo 07/03/2008, 22:29
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 11 años, 9 meses
Puntos: 52
Re: problemas con el checkbox

no entiendo demasiado pero igual es que solo recoges una sola variable de los checkbox

$apoyo = $_POST['apoyo'];

igual deberias convertirlos en un array para poder procesarlos todos es que simlemente con esa lina parece que llames a una sola variable de los checkbox.

no se si asi se fuerza la creacionde un array pero intentalo o busca informacion.

$apoyo = [$_POST['apoyo']];

no creo que sea asi como te he escrito, pero seguro que tiene que evr en convertir los valores del check en un array.

un saludo, espero no haberte despistado mas.
  #3 (permalink)  
Antiguo 07/03/2008, 22:37
 
Fecha de Ingreso: enero-2008
Mensajes: 68
Antigüedad: 11 años, 10 meses
Puntos: 1
Re: problemas con el checkbox

Aqui hay un problema

Código PHP:
$apoyo $_POST['apoyo']; 
$_POST['apoyo'] no existe, en cambio
$_POST['apoyo1'], $_POST['apoyo2'] etc pueden existir


digo "pueden existir" porque si no los chekeas no se envian

ahora, para poder tomar esos valores, puedes hacer lo siguiente

Código PHP:
for($i=1;$i<=10;$i++)
   if(isset(
$_POST["apoyo$i"]))
      
$apoyo[]=$_POST["apoyo$i"]; 
con este codigo, vas a tener guardado en el arreglo $apoyo, todos los valores que se chekearon

ahora

para asegurarte de que te han chekeado valores puedes hacer lo siguiente luego de ejecutar el script de arriba

Código PHP:
 if(!isset($apoyo)) die("No chekeo nada"); 
Y finalmente para ejecutar el query, debes hacer esto


Código PHP:

for($i=0;$i<count($apoyo);$i++)
{
$sql="INSERT INTO clientes (nombre,apoyo,comentarios,personas_involucradas,re lacion_empresa,curp,cargo_actividad) VALUES ('$nombre','".$apoyo[$i]."','$comentario', '$personas_involucradas', '$relacion_empresa', '$curp', '$cargo_actividad')";

mysql_query($sql) or die("Eror en mysql".mysql_error());

y con eso tendrías todo bien

ahora, si sigues todos los consejos que te he dado, tu codigo quedaría asi

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>
<?php

include "Conectar.php";

$nombre $_POST['nombre'];

for(
$i=1;$i<=10;$i++)
   if(isset(
$_POST["apoyo$i"]))
      
$apoyo[]=$_POST["apoyo$i"];

$comentario$_POST['comentario'];
$personas_involucradas $_POST['personas_involucradas'];
$relacion_empresa $_POST['opcion'];
$curp $_POST['curp'];
$cargo_actividad $_POST['cargo_actividad'];

if(!isset(
$apoyo)) die("No chekeo nada");

mysql_connect('localhost','root');
mysql_select_db('base');



for(
$i=0;$i<count($apoyo);$i++)
{
$sql="INSERT INTO clientes (nombre,apoyo,comentarios,personas_involucradas,re lacion_empresa,curp,cargo_actividad) VALUES ('$nombre','".$apoyo[$i]."','$comentario', '$personas_involucradas', '$relacion_empresa', '$curp', '$cargo_actividad')";

mysql_query($sql) or die("Eror en mysql".mysql_error());
}




echo 
"Los datos han sido introducidos satisfactoriamente";


?>
  #4 (permalink)  
Antiguo 07/03/2008, 22:41
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 13 años, 9 meses
Puntos: 96
Re: problemas con el checkbox

Saludos

Puedes realizarlo de la siguiente manera:
en dado caso que lo quieras guardar todos en el mismo registro

Cita:
isset($_POST['apooyo1']) id1 == $_POST['apoyo1'];
isset($_POST['apoyo2']) id2 == $_POST['apoyo2'];
isset($_POST['apoyo3']) id3 == $_POST['apoyo3'];

$apoyo = $id1."-".$id2."-".$id3;


$sql="INSERT INTO clientes (nombre,apoyo,comentarios,personas_involucradas,re lacion_empresa,curp,cargo_actividad) VALUES ('$nombre','$apoyo','$comentario', '$personas_involucradas', '$relacion_empresa', '$curp', '$cargo_actividad')";

Espero que te halla dado una idea.

Hasta Pronto
__________________
:.:Nano.:: @nano_hard - Retornando al foro
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 07:32.