¿No se puede hacer input type="hidden" name=id value="" ??

¿No se puede hacer input type="hidden" name=id value="" ??

de Nadyare Pérez -
Número de respuestas: 4

En view.php tengo una acción que llama a una función de lib.php para que haga unas anotaciones en un textarea y ahora al darle a aceptar quiero que vuelva a view.php a hacer otra acción pero al Aceptar me dice que el id del módulo del curso es incorrecto,es decir, me está pillando mal el $id.

Pero yo en lib.php hago var_dump($id) antes de enviarlo como campo hidden y me da el número bien, pero luego al enviarlo se me envía como 0 :S, y sé que no es que al hacer optional_param('id',0, PARAM_INT) me tome el 0 por el valor por defecto, porque pongo optional_param('id',1, PARAM_INT) y me sigue dando 0.

Y yo en lib.php sólo tengo

echo '<input type="hidden" name=action value="savenote" />';
echo '<input type="hidden" name=id value="<?php $id ?>" />';
var_dump($id); //este id me da el número correcto

echo '<input type="submit" value="Aceptar"/>';

¿Alguien sabe por qué me envía el valor 0?

Promedio de valoraciones: -
En respuesta a Nadyare Pérez

Re: ¿No se puede hacer input type="hidden" name=id value="" ??

de Iñaki Arenaza -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodlers de gran ayuda

No tengo ni idea de porque puede ser (sin ver más detalles del código), pero se me ocurre que compruebes que no tienes otro parámetro id en el resto del formulario, y que vuelques en pantalla todo lo que te llega en $_POST[] y $_GET[] cuando te llegan los datos.

Saludos. Iñaki.

En respuesta a Nadyare Pérez

Re: ¿No se puede hacer input type="hidden" name=id value="" ??

de Juan Segarra Montesinos -
Hola a tod@s,

Se me ocurren un par de cosas más que añadir a lo que comenta Iñaki.

En la línea donde imprimes el campo hidden, quítale las etiquetas de abertura y cierre del PHP (seguramente sea esto lo que está pasando). Es decir, cambiar:

echo '<input type="hidden" name=id value="<?php $id ?>" />';

por algo como:

echo "<input type=\"hidden\" name=id value=\"$id\" />";

Otra cosa que puedes comprobar es que cierras la etiqueta form...

Pues nada eso, espero que sirva el comentario de algo smile

Saludines,

Juan.

En respuesta a Juan Segarra Montesinos

Re: ¿No se puede hacer input type="hidden" name=id value="" ??

de Nadyare Pérez -
Na, esto sigue sin tirartriste

Si pongo echo "<input type=\"hidden\" name=id value=\"$id\" />"; se me pone en blanco toda la pantalla indeciso

El formulario lo tengo abierto y cerrado porque ambas cosas las hago en el view.php.

Tengo:

- En el view.php:

// Acción: Anotar
case 'takedown' :

// Recogen los parámetros necesarios
$id = required_param(id, PARAM_INT);
$slotid = required_param(slotid, PARAM_INT);

// Se muestra un formulario donde el profesor podrá
// añadir anotaciones en la franja actual
echo '<form id="form" method="post" action="view.php" align="center">';
interview_take_notes($slotid, $id, $course);
echo '</form>';
break;

- En lib.php:

function interview_take_notes($slotid, $id, $course) {

// Almacena el contexto de la instancia
$context = get_context_instance(CONTEXT_MODULE, $id);

// Almacena la franja temporal de la que se quiere tomar notas
$slot = get_record('interview','id', $slotid);

// Si tiene la capacidad de hacer anotaciones
if (has_capability('mod/interview:takenotes', $context)) {

// Si aún no tiene establecida ninguna anotación
if (empty($slot->notes)) {

// Se crea el formulario
echo '<center>';
echo "<table cellpadding=\"20\" cellspacing=\"20\" class=\"boxaligncenter\"><tr>";
echo "<td align=\"center\" valign=\"top\">";
print_heading('Agregando nota');
print_textarea($usehtmleditor, 5, 60, 200, 100, 'note');
echo "<br/>";
echo '<input type="hidden" name=action value="savenote" />';
echo '<input type="hidden" name=id value="<?php $id ?>" />';
echo '<input type="submit" value="Aceptar"/>';
echo "</td>";
echo "</tr>";
echo "</table>";
echo '</center>';

// Muestra el pie de página
print_footer($course);
exit;
}
}
}

Mil gracias a todos por vuestra ayuda!!
Un saludo!
En respuesta a Nadyare Pérez

Re: ¿No se puede hacer input type="hidden" name=id value="" ??

de Nadyare Pérez -
Ya está!!!gran sonrisa

Era cambiar lo del input hidden del identificador y poner
echo '<input type="hidden" name="id" value="'.$id.'" />'; jeje

Mil gracias igualmentegran sonrisa!!