Ayuda con introducción de multiples datos en formularios dinámicos.

bruli
01 de Noviembre del 2005
Hola.

Necesito ayuda con un formulario.

Dispongo de un formulario, el cual muestra unos campos checkbox. La cantidad
de estos campos a mostrar no es siempre la misma. Viene definida por el
resultado de un select a una bd. Es decir, pueden ser 3, 5, 1, etc.

La finalidad es que el usuario pueda seleccionar estos campos para introducir
estos valores en la base de datos.

Su complejidad viene porque puede seleccionar varios campos (checkbox), y no
se como recoger los valores de los campos seleccionados para posteriormente
hacer el insert.

En formularios estáticos, lo indicas mediante "$variable=
$_POST["nombre_de_campo"];". Pero con un formulario dinámico, no lo consigo.

Si alguien me puede ayudar a solucionar esto, lo agradecería mucho.

Les pego el código.

Gracias.

<HTML>
<HEAD><TITLE></TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
<LINK href="estilos.css" type="text/css" rel="StyleSheet">
</HEAD>
<BODY>
<p>&nbsp;</p>
<FORM method="POST">
<FIELDSET>
<LEGEND>Asignar personal a los departamentos:</LEGEND>
<table border=0 align=left width=50%>
<TR>
<TD>Empresa</TD>
<TD>
<SELECT name="empresa">
<OPTION selected></OPTION>
<?php
require('conexion.php');

$select= "select nombre, nick from empresas order by nombre;";
$result_select= pg_query($select)
or die("select ha fallado.");
while($row=pg_fetch_array($result_select))
{
echo "<option value=".$row["nick"].">".$row["nombre"]."</option>";
}
?>
</SELECT>
</TD>
<td>
<INPUT type="submit" name="aceptar" value="Aceptar">
</td>
</TR>
</table>
</FIELDSET>
&nbsp;
&nbsp;
<table border=0 align=left width=30%>
<TR>
<TD><?php
$empresa= $_POST['empresa'];

echo "$empresa";
?></TD>
</TR>
<TR>
<TD>Empleado</TD>
<TD>
<SELECT name="empleado">
<OPTION selected=""></OPTION>
<?php
//Selector de empleados
$select_empl= "select id, nombre, apellidos from personal where empresa='".
$empresa."' order by nombre, apellidos;";
$result_select_empl= pg_query($select_empl) or die("select_empl ha
fallado.");
while($row_empl= pg_fetch_array($result_select_empl))
{
echo "<option value=".$row_empl["id"].">".$row_empl["nombre"]." ".
$row_empl["apellidos"]."</option>";
}

?>
</SELECT>
</TD>
</TR>
<TR>
<TD><b>Departamentos:</b></TD>

<?php

//Selector de departamentos.
$select_dep= "select id, empresa, nombre from departamentos where empresa='".
$empresa."' order by nombre;";
$result_select_dep= pg_query($select_dep)
or die("select_dep ha fallado.");

while($row_dep=pg_fetch_array($result_select_dep))
{
echo "<tr>";
echo "<td></td>";
echo "<TD align=left>";
echo "<input name=departamento type=checkbox value=".$row_dep["id"].">".
$row_dep["nombre"]."";
echo "</tr>";
}


?>
</TD>
</TR>
<TR><TD></TD></TR>
<TR>
<TD colspan="2" align="center">
<INPUT type="submit" name="Introducir" value="Introducir">
</TD>
</TR>
</table>
</BODY>
</HTML>

<?php
$empleado= $_POST['empleado'];
$boton= $_POST['Introducir'];

// ---A partir de aquí es lo que me queda por terminar pues no puedo recoger
los valores----

/*$insert= "insert into depart_personal(departamento, usuarios) values('".
$departamento."', '".$empleado."');";
$result_insert= pg_query($insert) or die("insert ha fallado.");
while($result_insert)
{

}


/*if($boton== "Introducir")
{
while()
}*/
?>

--
Saludos.

urioliva
01 de Noviembre del 2005
prueba con un for que dentro compruebe si ese check esta marcado...si lo esta lo añades a una variable, sino pasas al siguiente numero dl for....y asi sucesivamente ....

al final le quitas la coma que kedara al final de la variable y eso lo concatenas con el resto del insert...

con eso es facil construir los campos que necesitas para el insert

bruli
01 de Noviembre del 2005
Hola.
¿Podrías darme mas detalles?. ¿Donde debería ponerlo, fuera del formulario?. Lo único que he conseguido hasta ahora es que sólo coja un valor.
No consigo hacerlo. Si me pudieras aclarar un poco la sintaxis, te lo agradecería.