Hola de nuevo.
He pasado a crearlos con el foreach explicado por abimaelrc para crear el formulario:
Código PHP:
Ver original<form name="enfermedades" method="post" action="">
Nombre: <input type="text" name="nombre" /><br />
Curso: <input type="text" name="curso" /><br />
<!--<input type="checkbox" name="foo[]" value="1" />
<input type="checkbox" name="foo[]" value="2" />
<input type="checkbox" name="foo[]" value="3" />
<input type="checkbox" name="foo[]" value="4" />
<input type="checkbox" name="foo[]" value="5" />
<input type="checkbox" name="foo[]" value="6" />-->
<?php
$enfermedades=array("Asma", "Epilepsia", "Esquizofrenia"); $cantidad=count($enfermedades); for ($c=0; $c<$cantidad ; $c++) {
//Preparo tantos inputs como enfermedades tenga el array
echo '<input type="checkbox" name="foo[]" value="'.$enfermedades[$c].'" />'.$enfermedades[$c].'';
}
?>
<input type="submit" value="Enviar" name="enviar-ch" />
</form>
Luego he hecho pruebas para ver los marcados e imprimir todos los campos sale perfectamente:
Código PHP:
Ver originalforeach($_POST['foo'] as $v)
{
echo $v . '<br />';
}
echo $_POST['nombre'] . ' - ' . $_POST['curso'] . ' - ' . implode('; ', $_POST['foo']);
Sin embargo cuando intento eviarlos a la base de datos me sigue dando error o me falla ya que no termino de ubicar ese implode:
Código PHP:
Ver original<?php
if(isset($_POST["enviar-ch"])) {
//Creo la conexión al servidor con usuario y contraseña:
if(!$conexion)
{
//Si hay algún error en la conexión lo muestra
}
/*Selecciono la base de datos y le doy la variable para conectar al servidor, asi todas las consultas que se hagan ya
estarían conectadas.*/
/*Creo otro ciclo para buscar los que están marcados en el checkbox haciendo un foreach */
foreach($_POST['foo'] as $v)
{
//echo $v . '<br />';
//$insertar . = implode('; ', $_POST['foo']);
}
$insertar=mysql_query("insert into alumnos(nombre,curso,enfermedades) values ('$_POST[nombre]','$_POST[curso]' , . implode(', '$_POST[foo]");
//Cierro la conexión
}
?>
¿Donde debo colocarlo de forma correcta para que envíe todos los valores?. Gracias de nuevo.