Foros del Web » Programando para Internet » Javascript »

Obtener el valor de un elemento hidden

Estas en el tema de Obtener el valor de un elemento hidden en el foro de Javascript en Foros del Web. Hola, Estoy haciendo un script que me permita obtener el valor exacto de un campo tipo hidden bajo las siguientes condiciones: <script type="text/javascript"> <!-- function ...
  #1 (permalink)  
Antiguo 11/11/2009, 16:15
 
Fecha de Ingreso: noviembre-2005
Mensajes: 32
Antigüedad: 18 años, 5 meses
Puntos: 0
Obtener el valor de un elemento hidden

Hola,

Estoy haciendo un script que me permita obtener el valor exacto de un campo tipo hidden bajo las siguientes condiciones:

<script type="text/javascript">
<!--
function ver_que_hay(){
var ejs=document.getElementById('upload_area').innerHT ML;
alert(ejs);
}
//-->
</script>

</HEAD>

<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#FF0000" VLINK="#800000" ALINK="#FF00FF" BACKGROUND="?">

<div id="container">
<!-- THIS IS THE IMPORTANT STUFF! -->
<div id="demo_area">
<form action="scripts/valida.php" method="post" name="Form1">
<div id="right_col">
<TABLE ALIGN="left" BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%">
<TR ALIGN="middle" VALIGN="middle">
<TD><div id="upload_area">
No hay imagen.<br /><br />
</div> </TD>
</TR>
</TABLE>
</div><BR><BR><BR>
<INPUT TYPE="button" VALUE="enviar formulario" class="boton" onclick="ver_que_hay();">
</form>

En el div upload_area se inserta un iframe llamado marco por medio de un script php:

echo '<iframe id="marco" width="120" height="120" border="0" frameborder="0" src="'.$mypath.'remover.php?imgdel='.$myImageDel.' &imgshow='.$imgMin.'&campo='.$campo.'&img_up='.$na me_img.'">';
echo '</iframe>';

y dentro de iframe se lanza lo siguiente por medio de otro script php:

echo '<CENTER><img src="gd_imager.pl?img='.$image_min.'&base=/ajax_image_upload/scripts/base.png&'.time().'" border="0" />';
echo '<br><a href="remover.php?archivo='.$myImageDel.'">Remover </a></CENTER>';
echo '<input name="'.$campo.'" id="'.$campo.'" type="hidden" value="'.$img_up.'">';

Ahora bien, quiero saber el valor del campo hidden que tiene un id dado por $campo, el valor logicamente sera $img_up pero quiero extraerlo por medio del alert() de la función ver_que_hay(). Que debo usar??

Gracias

Luis
  #2 (permalink)  
Antiguo 12/11/2009, 03:20
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Obtener el valor de un elemento hidden

Uff no habria una forma de hacerlo mas sencilla....


A ver tienes dos problemas primero referirte o acceder a datos del doumento hijo que esta en el iframe

Código js:
Ver original
  1. window.frames[0].document.getElementById("oculto").value;
suponiendo que tienes solo un iframe (0,1,2...) esto nos da el valor de un objeto con id="oculto" que esta en el documento enmarcado en el iframe.

El segundo problema es que quires cargar dinamicamente el documento y ademas el id del objeto tambien es dinamico....

Si intentas esto

Código js:
Ver original
  1. window.frames[0].document.getElementById("'.$campo.'").value;
no te va a funcionar, creo, por que en el momento de cargar el script no tienes el valor de $campo o si...no se.

Podrias hacer una truco que creo te puede servir, incluir otro campo oculto con id fija y de valor el id del otro campo oculto

Código HTML:
<input name="valorcampo" id="valorcampo" type="hidden" value="'.$campo.'">
<input name="'.$campo.'" id="'.$campo.'" type="hidden" value="'.$img_up.'"> 
y luego

Código js:
Ver original
  1. var campo=window.frames[0].document.getElementById("valorcampo").value;
  2. var valorimg_up=window.frames[0].document.getElementById(campo).value;

(fijate que en la segunda linea campo va sin comillas ya que es la variable javascript definida en la linea anterior).

Claro que si puedes hacer esto quizas tambien podrias dejar fijo el id del campo oculto, es decir siempre el mismo id, y ya lo tendrias resuelto....

Código HTML:
<input name="img_up" id="img_up" type="hidden" value="'.$img_up.'"> 
Código js:
Ver original
  1. window.frames[0].document.getElementById("img_up").value;

Quim

Última edición por quimfv; 12/11/2009 a las 03:27
  #3 (permalink)  
Antiguo 13/11/2009, 12:15
 
Fecha de Ingreso: noviembre-2005
Mensajes: 32
Antigüedad: 18 años, 5 meses
Puntos: 0
Respuesta: Obtener el valor de un elemento hidden

Gracias quimfv! me sirivió el código js n° 1 lo unico que tenia que corregir de mi codido es que en el iframe diga tambien name="marco" si no no me lo toma.
En el campo input tipo hidden no hace falta usar name="'.$campo.'" porque estoy utilizando la forma getElementById()
  #4 (permalink)  
Antiguo 13/11/2009, 17:15
 
Fecha de Ingreso: noviembre-2005
Mensajes: 32
Antigüedad: 18 años, 5 meses
Puntos: 0
Respuesta: Obtener el valor de un elemento hidden

Ahora tengo otro problema, porque cuando no hay un campo hidden o el mismo iframe no se encuentra porque el cliente no selecciono nada, o sea, dentro del div upload_area no hay nada me salta un error de script en el navegador.:

'window.frames.marco.document es nulo o no es un objeto'

esto cuando se verifica:

var ejs=window.frames['marco'].document.getElementById('Imagen_1').value;

Por supuesto, en ese caso no existe el iframe llamado 'marco', pero quiero que al no existir me solucione el problema y salte un mensajito con alert('No seleccionaste nada')

para hacerle saber al cliente que es un campo obligatorio.


Gracias
  #5 (permalink)  
Antiguo 16/11/2009, 02:43
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Obtener el valor de un elemento hidden

Tienes que poner un condicional que lance el alert si no se dan las condiciones exigidas...

if ( ...condición...) {
...codigo si se cumple...
}else{
alert("No seleccionaste nada");
}

sin ver todo tu codigo no puedo precisarte mas... y perdona no he visto hasta hoy tu pregunta.


Quim

Última edición por quimfv; 16/11/2009 a las 02:54
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 13:58.