Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Enviar a través de hidden una serie de identificadores en un formulario

Estas en el tema de Enviar a través de hidden una serie de identificadores en un formulario en el foro de PHP en Foros del Web. Hola. Tengo una tarea para hacer una aplicación que inserte las calificaciones de unos alumnos en las diferentes tareas que tengan que hacer. La cuestión ...
  #1 (permalink)  
Antiguo 22/05/2014, 09:45
Avatar de RsG
RsG
 
Fecha de Ingreso: febrero-2008
Mensajes: 16
Antigüedad: 16 años, 2 meses
Puntos: 0
Enviar a través de hidden una serie de identificadores en un formulario

Hola.

Tengo una tarea para hacer una aplicación que inserte las calificaciones de unos alumnos en las diferentes tareas que tengan que hacer.

La cuestión está, en que genero un Formulario consistente de una tabla de longuitud aleatoria, ya que hay tareas que van para más o menos alumnos. Y dentro de esta tabla, incluyo una celda en la que el usuario introduce la calificación de dicho alumno.

El problema está a la hora de pasar toda esa información a otro elemento InsertaCalificacion.php, donde voy a insertar los valores. Ya que además del de la celda que tengo, necesito los identificadores de los alumnos para mantener la integridad de la base de datos.

Tengo esto en la página del formulario.

Código PHP:
<?php  
  $idt 
$_GET['idtarea'];
  
$sql "SELECT Alumno.Id_Alumno AS i, Alumno.Nombre AS n, Alumno.Apellidos AS a, Alumno.CorreoElectronico as c FROM Alumno, Tarea, TareaGrupo WHERE Tarea.Id_Tarea = '$idt' AND Tarea.Id_Tarea = TareaGrupo.Id_Tarea AND Alumno.Id_Grupo = TareaGrupo.Id_Grupo";
  
$result ConexionBD($sql);
  while(
$row mysql_fetch_array($result))
  {
    
$var $row["i"];
    echo 
$var;
    echo 
"<tr><td width=\"25%\"><font face=\"verdana\">" 
        
$row["n"] . "</font></td>";
    echo 
"<td width=\"25%\"><font face=\"verdana\">" 
        
$row["a"] . "</font></td>";
    echo 
"<td width=\"25%\"><font face=\"verdana\">" 
        
$row["c"] . "</font></td>";
    echo 
"<td align=\"right\"><input type=\"text\" name=\"IdsAlumnos[]\ value=\"0\"></td>";
    echo 
"<input type='hidden' name='idtarea' value='$idt'>";
    echo 
"<td align=\"right\"><input type=\"hidden\" name=\"idalumno[]\ value=\" echo $var \"></td>";
    echo 
$var;
  }  
  
mysql_free_result($result);
  
CierraConexionBD();
  
?>
Y este código me lleva al elemento InsertaCalififiacion.php que es donde estoy intentando imprimir el Id + Calificación, elementos que luego tendría que mandar a través de una consulta SQL.


Código PHP:
<?php

    
//echo 'IdTarea';
    
$identificador $_GET['idtarea'];
    
//echo $identificador;
    //echo 'IdAlumno';
    
$idalumnos $_GET['idalumno'];

    for ( 
$i 0$i count($_GET["IdsAlumnos"]);$i++){
        
//echo 'Id_Alumno';
        
echo "Id_Alumno $i = " .$_REQUEST["idalumno"][$i] . " <br>";
        echo 
"Calificacion $i = " .$_REQUEST["IdsAlumnos"][$i] . " <br>";
        }
    for (
$i 0$i count($_GET["idalumno"]); $i++){
        echo 
'Funcionan Identificadores';
        }

?>
Una vez introduzco las calificaciones en la tabla y pincho el botón que me lleva a esta web InsertaCalificaciones.php el resultado es este

Id_Alumno 0 =
Calificacion 0 = 10
Id_Alumno 1 =
Calificacion 1 =
Id_Alumno 2 =
Calificacion 2 =
Id_Alumno 3 =
Calificacion 3 =

En el caso de que solo hubiese calificado al primero de los cuatro alumnos.

El problema está, en que el identificador de los alumnos nunca me los imprime. Y aun así, en el primer bloque de código cuando ejecuto

Código PHP:
$var $row["i"];
    echo 
$var
Dentro del while, me imprime bien los cuatro identificadores, pero nunca me los llega a pasar al otro formulario como se ve en el resultado.

Ya no se si es algún problema de comillas simples o dobles, o que, pero tengo que buscar alguna forma de mover esos identificadores al otro formulario que es donde posteriormente hago la insercción con los datos que me llegan. Aun así, el problema está en esta línea y por más que hago para probar combinaciones, no doy con la adecuada

Código PHP:
echo "<td align=\"right\"><input type=\"hidden\" name=\"idalumno[]\ value=\" echo $var \"></td>"
Si alguien me puede echar una mano, le estaré muy agradecido

Un Saludo.
  #2 (permalink)  
Antiguo 22/05/2014, 09:53
 
Fecha de Ingreso: abril-2013
Mensajes: 61
Antigüedad: 11 años
Puntos: 4
Respuesta: Enviar a través de hidden una serie de identificadores en un formulario

No mire mucho, pero la linea esta que comentas, ponla asi
Código PHP:
Ver original
  1. echo '<td align="right"><input type="hidden" name="idalumno[]" value="'.$var.'"></td>';

Te faltaba alguna comilla, y te sobraba un "echo"

Edito: Aunque no hace falta meter algo que estara oculto dentro de la tabla, ya que no se vera :)
  #3 (permalink)  
Antiguo 22/05/2014, 10:12
Avatar de RsG
RsG
 
Fecha de Ingreso: febrero-2008
Mensajes: 16
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Enviar a través de hidden una serie de identificadores en un formulario

Cita:
Iniciado por nanotk58 Ver Mensaje
No mire mucho, pero la linea esta que comentas, ponla asi
Código PHP:
Ver original
  1. echo '<td align="right"><input type="hidden" name="idalumno[]" value="'.$var.'"></td>';

Te faltaba alguna comilla, y te sobraba un "echo"

Edito: Aunque no hace falta meter algo que estara oculto dentro de la tabla, ya que no se vera :)
Funciona perfectamente y yo ya estaba volviéndome loco en cómo pasar los identificadores de marras, de hecho si te tuviera delante, te daba dos besos porque estaba rozando la desesperación probando mil combinaciones posibles jajaja.

Muchísimas gracias.

Etiquetas: form, hidden
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 11:52.