Foros del Web » Programando para Internet » PHP »

llamar a una función con campos hidden

Estas en el tema de llamar a una función con campos hidden en el foro de PHP en Foros del Web. Hola a todos!!! Quiero pedirles que me ayuden con lo siguiente: Necesito llamar a una función javascript con campos hidden a través de un botón ...
  #1 (permalink)  
Antiguo 05/02/2004, 00:40
 
Fecha de Ingreso: octubre-2003
Mensajes: 134
Antigüedad: 14 años, 2 meses
Puntos: 0
llamar a una función con campos hidden

Hola a todos!!!

Quiero pedirles que me ayuden con lo siguiente: Necesito llamar a una función javascript con campos hidden a través de un botón pero NO me resulta!!!!

He tratado de usar varias sintaxis pero la verdad es que no se cómo es la correcta (he buscado pero no aparece lo que necesito).

Aquí pongo el código para que me puedan entender mejor:


<script languaje="javascript">

function envia(EDAD, PROMMAT8) {

nota_formulario=document.f1.nota.value;
document.location='pagina.php?enviacaptura='+nota_ formulario+'&ED='+EDAD+'&PMAT8='+PROMMAT8;
}

</script>

<form action="pagina.php" method="post" name="f1">

<?
$EDAD=27;
$PROMMAT8=10;
?>

<INPUT TYPE="hidden" NAME="EDAD" VALUE="<? echo $EDAD ?>">

<INPUT TYPE="hidden" NAME="PROMMAT8" VALUE="<? echo $PROMMAT8 ?>">



<INPUT TYPE="submit" VALUE="Enviar Variables" onClick="envia(EDAD, PROMMAT8);">

<?
echo "leyendo las variables = ";
echo "variable\$ED: $ED <br>\n";
echo "variable\$PMAT8: $PMAT8 <br>\n";
?>


</form>
</body>
</html>


Probé también con:

<INPUT TYPE="submit" VALUE="Enviar" onClick="envia('<? echo $EDAD ?>', '<? PROMMAT8 ?>');">

Tambien con:

<INPUT TYPE="submit" VALUE="Enviar" onClick="envia();">

(y también con otras "ideas" )


Y la verdad NO ME FUNCIONÓ. Por tanto cómo se debe hacer para enviar campos ocultos (con valores de variables) a una función Javascript con un botón????


Por favor alguién me ayude

Yuki27
  #2 (permalink)  
Antiguo 05/02/2004, 03:14
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Mira en el codigo HTML generado. Si ves que lo campos HIDDEN tienen los valores correctos, bien.

Mejor si usas los arrays superglobales, en este caso el $_GET:
Código PHP:
<?
echo "leyendo las variables = ";
echo 
"variable\$ED: {$_GET['ED']} <br>\n";
echo 
"variable\$PMAT8: {$_GET['PMAT8']} <br>\n";
?>
Y aqui se acabo todos los problemas que pueden ser causa de PHP. El resto es problema de javascript (que tiene foro propio).

Aunque ya puestos a comentar, si usas un boton submit, ¿para que usas el onclick? Quizas lo que necesitas es un boton normal. Y en tu funcion javascript optienes el valor de otro campo. Si ese te lo hace bien tal como esta, ¿por que no lo haces igual con los hidden? Son campos igual que los text.

Suerte.

PD: Si compruebas que PHP no tiene la culpa, lo dices para que movamos el mensaje a javascript.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 05/02/2004, 08:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
yuki27 .. no repitas los mensajes (y si por error se duplicarón avisa a un moderador para que borre alguno de los duplicados).

Por aquí tenias el mensaje original ...
http://www.forosdelweb.com/s/msg180644.html

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 05/02/2004, 11:10
 
Fecha de Ingreso: octubre-2003
Mensajes: 134
Antigüedad: 14 años, 2 meses
Puntos: 0
¿?

Josemi

Lo que necesito es enviar campos hidden a una función mediante un boton. Es por ello que llamo a la función con onClick (porque de lo contrario como le digo que debe pasar las variables a la función?)

En realidad he probado con tantas sintaxis y nada me resulta!!!

Hice lo que señalaste: puse campo hidden y en la función lo trate igual que un campo text PERO IGUAL SE VE en la URL

Te pongo el código para que me puedas ayudar (por favor)

<html>
<title>ejemplo</title>
<body>
<script languaje="javascript">

function envia() {

nombre_formulario=document.f1.nombre.value;
edad_PHP=document.f1.edadhidden.value;
document.location='Ejemplo.php?enviacaptura='+nomb re_formulario+'&enviacaptura2='+edad_PHP;
}

</script>

<form action="Ejemplo.php" method="post" name="f1">

Nombre: <INPUT TYPE="text" NAME="nombre"><br>


<?
$EDAD=5;
?>

<INPUT TYPE="hidden" NAME="edadhidden" VALUE="<? echo $EDAD ?>">

<INPUT TYPE="button" VALUE="Enviar Mensaje" onClick="envia();">

<?
echo "variable\$enviacaptura: $enviacaptura <br>\n";

echo "variable\$enviacaptura2: $enviacaptura2 <br>\n";

echo "variable\$enviacaptura2: {$_POST['enviacaptura2']} <br>\n";

?>
(los echo me dan el resultado correcto)

</form>
</body>
</html>

El problema que tengo (lo que me deja igual que al principio) es que cuando hago click en el botón, IGUAL SE VEN en la URL las variables!!!! entonces de QUÉ me sirvió tener el campo hidden:

<INPUT TYPE="hidden" NAME="edadhidden" VALUE="<? echo $EDAD ?>">

Si igual veo el valor en la URL

¿Cómo lo soluciono? Por favor es muy importante--Alguién me ayude.

Yuki27

pd: Cluster, disculpa por haber repetido el mensaje. Lo que pasó es que lo copié para ponerlo en el foro Javascript y la verdad es que no me di cuenta que lo publiqué en el mismo foro PHP.
  #5 (permalink)  
Antiguo 05/02/2004, 11:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ya te comenté como solventar el problema .. y que la solución es Javascript ..

Siempre que hagas esto:
document.location='Ejemplo.php?enviacaptura='+nomb re_formulario+'&enviacaptura2='+edad_PHP;

vas a ver las variables en el URL .. eso es un redireccionamiento y usas el URL como ahí mismo lo estás viendo... Pero eso es problema de Javscript no de PHP ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 05/02/2004, 17:44
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Bien, ya esta claro el problema. hidden no significa que el parametro no se vea al pasar a la otra pagina. HIDDEN significa que es un campo de un formulario que no tiene representacion visual dentro del formulario. Nada mas. Tu no ves en la pagina el campo hidden, solo ves el resto de campos (o controles o como quieras llamarlos).

La unica forma de que no se vean los parametros que pasa a otra pagina es haciendo un form con el method POST. Si usas GET o la redireccion javascript, TODOS los parametros se ven en la URL.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 05/02/2004, 19:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El problema es que pasa X parámetros en un formulario (como campos hidden y usando su metodo POST) y otros los pasa por javascript con su método GET (al generar ese redireccionamiento desde javascript que señalé en mi anterior intervención).

Yo insisito que desde javacript debería llevar sus valores a campos hidden y trabajar el formulario en modo POST (method) .. hasta que no viajen todas las variables en el formulario .. seguirá viendo esas variabels en el URL.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 06/02/2004, 01:24
 
Fecha de Ingreso: octubre-2003
Mensajes: 134
Antigüedad: 14 años, 2 meses
Puntos: 0
Gracias por la aclaración...

Hola!!!

Gracias a Cluster y a Josemi por su ayuda y la aclaración. Ahora sí entendí que es lo que debo hacer.

Muchísimas gracias.


Yuki27
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 02:13.