Foros del Web » Programando para Internet » PHP »

Pasar valor a un input type="hidden"

Estas en el tema de Pasar valor a un input type="hidden" en el foro de PHP en Foros del Web. Hola, yo no soy muy dado a preguntar cosas, pero es que esto no se como buscarlo ni en el foro ni en San Google, ...
  #1 (permalink)  
Antiguo 27/08/2006, 22:18
Avatar de merolhack  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 1.242
Antigüedad: 11 años, 5 meses
Puntos: 16
Sonrisa Pasar valor a un input type="hidden"

Hola, yo no soy muy dado a preguntar cosas, pero es que esto no se como buscarlo ni en el foro ni en San Google, bueno la cosa es que estoy mostrando la informacion de unos alumnos, y quisera que en cada reglon de la tabla me pusiera un boton de editar con el valor de el id de el alumno, se que es muy sencillito pero no se hacerlo :(

Código PHP:
<?php include('includes/header.html'); ?>
<?
include('functions/conexion.php');
$_pagi_sql "SELECT * FROM alumnos";
//cantidad de resultados por página (opcional, por defecto 20)
$_pagi_cuantos 10;
//Incluimos el script de paginación. Éste ya ejecuta la consulta automáticamente
include("functions/paginator.inc.php");
?>
  <form method="POST" action="opciones/editar.php">
    <table width="760px" border="0" cellpadding="4" cellspacing="3">
    <tr>
     <td width="60px" class="titulo"><b>Editar</b></td>
     <td width="60px" class="titulo"><b>id</b></td>
     <td width="150px" class="titulo"><b>Nombre</b></td>
     <td width="150px" class="titulo"><b>Apellidos</b></td>
     <td width="160px" class="titulo"><b>Matricula</b></td>
     <td width="90px" class="titulo"><b>Sem. Inicio</b></td>
     <td width="90px" class="titulo"><b>Sem. Actual</b></td>
    </tr>
<?
while($row mysql_fetch_array($_pagi_result)){
    echo 
'<tr>';
    echo 
'<td class="td"><input type="hidden" name="id_alumnos" id="id_alumnos" value"$id_alumno" /><input type="submit" id="accion" value="Editar" /></td>';
    echo 
'<td class="td"><b>'.$row['id_alumno'].'</b></td>';
    echo 
'<td class="td">'.$row['nombre'].'</td>';
    echo 
'<td class="td">'.$row['apellidos'].'</td>';
    echo 
'<td class="td">'.$row['matricula'].'</td>';
    echo 
'<td class="td">'.$row['seminicio'].'</td>';
    echo 
'<td class="td">'.$row['semactual'].'</td>';
    echo 
'</tr>';
}
echo
"<p>".$_pagi_navegacion."</p>";

?>
</table>
</form>
<?php include('includes/footer.html'); ?>
Lo que quiero es que el value de el input sea el id de el alumno, lo estaba intentando asi:
Código PHP:
$id_alumno $row[id_alumno];
<
input type="hidden" name="id_alumno" id="id_alumno" value"$id_alumno" /> 
pero no me funciona espero que me den algunas ideas para buscarlo en el foro o buscarlo en google

P.D. : esto es lo que apenas estoy haciendo pero no me sale :(
http://sises.iespana.es/alumnos/index.php

Última edición por merolhack; 27/08/2006 a las 22:29
  #2 (permalink)  
Antiguo 27/08/2006, 22:30
(Desactivado)
 
Fecha de Ingreso: febrero-2005
Ubicación: Azcapotzalco
Mensajes: 299
Antigüedad: 12 años, 10 meses
Puntos: 2
Esta es una linea de codigo PHP
Cita:
$id_alumno = $row[id_alumno];
Esta es una linea de codigo HTML,
Cita:
<input type="hidden" name="id_alumno" id="id_alumno" value"$id_alumno"

no puedes imprimir codigo PHP como si fuera HTML, tendria que ser
Código:
$id_alumno = $row[id_alumno];
<input type="hidden" name="id_alumno" id="id_alumno" value=" <?=$id_alumno ?>"
/>
  #3 (permalink)  
Antiguo 27/08/2006, 22:41
Avatar de merolhack  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 1.242
Antigüedad: 11 años, 5 meses
Puntos: 16
Sonrisa

Si ya lo habia hecho asi, pero no me funciono... :( <--- Mi cara

Como puedo buscar en google hacerlo?
  #4 (permalink)  
Antiguo 27/08/2006, 23:21
Usuario baneado!
 
Fecha de Ingreso: marzo-2006
Ubicación: Cd. de México
Mensajes: 44
Antigüedad: 11 años, 8 meses
Puntos: 0
Después de haber ejecutado el query pones el input :p

Código:
<?php
$id_alumno = $row["id_alumno"];
echo "<input type=\"hidden\" name=\"id_alumno\" id=\"id_alumno\" value=".$id_alumno.">";
?>
Saludos
  #5 (permalink)  
Antiguo 27/08/2006, 23:25
 
Fecha de Ingreso: abril-2003
Mensajes: 201
Antigüedad: 14 años, 8 meses
Puntos: 0
y asi?
Código PHP:
while($row mysql_fetch_array($_pagi_result)){
    
$id_alumno $row[id_alumno];
    echo 
"<tr>\n";
    echo 
"<td class=\"td\"><input type=\"hidden\" name=\"id_alumnos\" id=\"id_alumnos\" value=".$id_alumno." /><input type=\"submit\" id=\"accion\" value=\"Editar\" /></td>\n";
    echo 
'<td class="td"><b>'.$row['id_alumno'].'</b></td>';
    echo 
'<td class="td">'.$row['nombre'].'</td>';
    echo 
'<td class="td">'.$row['apellidos'].'</td>';
    echo 
'<td class="td">'.$row['matricula'].'</td>';
    echo 
'<td class="td">'.$row['seminicio'].'</td>';
    echo 
'<td class="td">'.$row['semactual'].'</td>';
    echo 
'</tr>';

  #6 (permalink)  
Antiguo 28/08/2006, 00:13
Avatar de merolhack  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 1.242
Antigüedad: 11 años, 5 meses
Puntos: 16
Sonrisa

Ya pude jeje es que habia puesto el Form antes que toda la tabla, y ahora lo hize asi:
Código PHP:

<?php
while($row mysql_fetch_array($_pagi_result)){
    
$id_alumno $row[id_alumno];
    echo 
'<tr>';
?>    
<td class="td">
<form method="POST" action="opciones/editar.php">
<input type="hidden" name="id_alumnos" id="id_alumnos" value="<?=$id_alumno?>">
<input type="submit" name="submit" value="Editar">
</form>
</td>
<?php    
    
echo '<td class="td"><b>'.$row['id_alumno'].'</b></td>';
    echo 
'<td class="td">'.$row['nombre'].'</td>';
    echo 
'<td class="td">'.$row['apellidos'].'</td>';
    echo 
'<td class="td">'.$row['matricula'].'</td>';
    echo 
'<td class="td">'.$row['seminicio'].'</td>';
    echo 
'<td class="td">'.$row['semactual'].'</td>';
    echo 
'</tr>';
    echo 
'<tr>';
    echo 
'<td colspan="7"><?php echo $id_alumnos; ?></td>';
    echo 
'</tr>';
}
echo
"<p>".$_pagi_navegacion."</p>";

?>
O sea el formulario en cada fila

Les quiero agredecer esto a 4sc1r, ing_amc y a xp64 por que sin ellos esto no hubiera sucedido, tambien desearle una pronta recuperacion a mi abuelita y una paz en todo el medio oriente, gracias por este premio...

X'D
  #7 (permalink)  
Antiguo 28/08/2006, 00:16
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 11 años, 11 meses
Puntos: 5
Buenas, un enfoque un poco distinto pero más simple:

En vez de usar un submit y enviar un formulario por POST con todos las variables que hay dentro del form, podrías pasar por GET el id del registro/alumno a modificar. Para hacer esto podés una función en javascript (que redireccione con los parámetros adecuados) en el evento onclick.

Dentro del <head>, iría la función que puede ser tan simple como esto:

Código:
<script type="text/javascript" language="javascript">
function editar(id) {
	location.href = "editar.php?id_alumno=" + id;
}
</script>
Recibe por parámetro el id y redirecciona pasando a su vez ese valor.

Cada fila de la tabla html tendría que quedar más o menos como ésta:

<tr>
<td><input type="button" value="editar" onclick="editar(1);"></td>
<td>Pepe</td>
<td>González</td>
<td>etc, etc</td>
</tr>

onclick="editar(1);"

Acá el valor que va entre paréntesis es el id que sacás de la consulta.

En vez de un botón podrías usar una imagen, por ejemplo.

Bueno, esta es una alternativa, hay varias. (Otra que se me ocurre es hacer un <form> por cada fila, pero no sé, la otra me parece más simple; también podría usarse directamente <a href> en vez de una llamada a javascript, supongo, pero probé poner el botón entre <a></a> y en IE no reacciona).

Suerte
Califa
  #8 (permalink)  
Antiguo 28/08/2006, 00:31
Avatar de merolhack  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 1.242
Antigüedad: 11 años, 5 meses
Puntos: 16
Sonrisa

Bueno, lo voy a probar, aunque ya hize que se pusiera un form en cada fila Muchas gracias por tratar de ayudarme.
  #9 (permalink)  
Antiguo 28/08/2006, 03:05
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 13 años, 1 mes
Puntos: 1
no hace falta poner un form en cada fila.. pones uno general para la tabla y ya te sirve.
__________________
ALOZORRO v5.0 (ahora en .es)
  #10 (permalink)  
Antiguo 28/08/2006, 10:51
Avatar de merolhack  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 1.242
Antigüedad: 11 años, 5 meses
Puntos: 16
Sonrisa

No, pero lo estaba haciendo asi, por que por logica deberia ser asi no?, pero no me funciono :( asi que mejor en cada fila un form, solo que el codigo se va a hacer un poco grande jeje
  #11 (permalink)  
Antiguo 28/08/2006, 10:53
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 13 años, 1 mes
Puntos: 1
por logica claro que tiene que ser asi.. si no te funcionó es porque tienes algo mal en el codigo.. no metas tantos formularios que ya te digo que con uno solo te basta y te sobra... de la otra forma es complicarte para nada..
__________________
ALOZORRO v5.0 (ahora en .es)
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 17:09.