Foros del Web » Programando para Internet » ASP Clásico »

Pasar datos de una pop-up a un formulario

Estas en el tema de Pasar datos de una pop-up a un formulario en el foro de ASP Clásico en Foros del Web. hola, tengo un formulario que introduce datos en una base de datos, con diferentes campos, uno de ellos abre un pop-up y busca una imagen ...
  #1 (permalink)  
Antiguo 01/10/2007, 10:43
 
Fecha de Ingreso: septiembre-2005
Mensajes: 202
Antigüedad: 19 años, 7 meses
Puntos: 0
Pasar datos de una pop-up a un formulario

hola, tengo un formulario que introduce datos en una base de datos, con diferentes campos, uno de ellos abre un pop-up y busca una imagen en el disco duro, para luego subirla al servidor (utilizando asp upload), una vez subida se cierra el pop-up, despues es necesario introducir "a mano" en un campo del formulario el nombre del archivo que hemos subido para poder enlazarlo en la ficha.

Me gustaria que ese nombre del archivo se pusiera automaticamente en el campo que le pertoca cuando cerramos el pop-up

alguien sabe como se hace?

salut

Última edición por potenkin; 01/10/2007 a las 11:07
  #2 (permalink)  
Antiguo 01/10/2007, 11:59
Avatar de karmish  
Fecha de Ingreso: mayo-2006
Mensajes: 272
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: Pasar datos de una pop-up a un formulario

Saludos: me podrias mostrar el codigo de como estas ingresando la imagen,

por que el "asp upload" que tengo lo estoy ingresando con 3 archivos el primero el formulario donde cargo la imagen el segundo es el de"asp upload" y por ultimo un archivo de carga que es el siguiente:

Código:
<!--#include file="xelupload.asp"-->' este codigo es el que me enlasa el archivo
del "asp upload" que tengo'
<%
SET DbObj = Server.CreateObject("ADODB.Connection")
DbObj.Open Application("curriculum")
Set oCom = CreateObject("ADODB.Command")
Set oRec = CreateObject("ADODB.Recordset")

Dim up, fich
set up = new xelUpload
up.Upload()
	
For each fich in up.Ficheros.Items

nombre=fich.Nombre

'Para guardarlo
'	Con el nombre de fichero original:
	fich.Guardar Server.MapPath("fotos")
'	Con otro nombre:
'	fich.GuardarComo nombrefichero, Server.MapPath("rutavirtual")
'----------------------------------------------------------------
Next

'Limpiamos objeto
set up = nothing



FOTO= "execute sp_i_foto '"&nombre&"'"
DbObj.execute FOTO

	  Response.Redirect("pagina.asp")
%>
espero te sirva el ejemplo
  #3 (permalink)  
Antiguo 02/10/2007, 02:55
 
Fecha de Ingreso: septiembre-2005
Mensajes: 202
Antigüedad: 19 años, 7 meses
Puntos: 0
Re: Pasar datos de una pop-up a un formulario

Gracias Karmish,
pero me temo que no era eso lo que necesitaba, con el aspupload no hay problema, el asunto es como mandar el nombre del archivo que selecciono en un pop-up a un campo del formulario (que esta en otra página).

hasta ahora lo hago manualmente, es decir,
1. abro un pequeño pop-up en el que selecciono el archivo en el disco duro,
2. lo subo al servidor (con aspupload)
3. cierro el pop-up
4.y despues escribo en el campo del formulario que le corresponde el nombre del archivo
5. envio el form para crear una nueva referencia (en este caso)

no sé si me explico...correctamente...

salut
  #4 (permalink)  
Antiguo 02/10/2007, 03:07
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
Re: Pasar datos de una pop-up a un formulario

No se si es lo que quieres pero en javascript el objeto Window posee la propiedad opener que hace referencia al objeto window que lo abrió:

script_que_abre_el_popup.asp
Código:
<a href="javascript:abrePopup()">Abre el Popup</a>
<form name='form1'>
   <input type="text" name="texto" />
</form>
popup.asp
Código:
.....
<form name="form_img">
...
<input type="file" name="imagen1" />
...
</form>
<script>

function cerrar() {
     window.opener.document.form1.texto.value = document.form_img.imagen1.value;
     window.close();
}

</script>
No se si te servirá.


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #5 (permalink)  
Antiguo 02/10/2007, 03:58
 
Fecha de Ingreso: septiembre-2005
Mensajes: 202
Antigüedad: 19 años, 7 meses
Puntos: 0
Re: Pasar datos de una pop-up a un formulario

gracias tammander
me temo que no es tan sencillo. El pop-up tiene un simple form que envia los datos a un asp que es el que ejecuta la accion de subir la foto al servidor

este es el form1

<FORM ACTION="subir_docu.asp" METHOD="POST" ENCTYPE="multipart/form-data" name="form1" >
<table width="400" border="0" align="center" cellpadding="3" cellspacing="0">
<tr>
<td bgcolor="#FFCC33"><font size="3" face="Verdana, Arial, Helvetica, sans-serif">Pujar
document</font></td>
</tr>
<tr>
<td><table width="100%" border="0" align="center" cellpadding="2" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#FFFFFF">&nbsp;</td>
</tr>
<tr>
<td bgcolor="#FFFFFF"><INPUT TYPE=FILE SIZE=40 NAME="FILE1">
</td>
</tr>
<tr>
<td bgcolor="#FFFFFF"><input name="SUBMIT" type=SUBMIT value="Subir Documento">
</td>
</tr>
</table></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
</table>
</FORM>


este es "subir_docu.asp", que ejecuta el aspupload, informa que se ha subido correctamente el documento y despues da la posibilidad de cerrar la ventana

<%

Set Upload = Server.CreateObject("Persits.Upload.1")
Count= Upload.Save("d:\xvrt\dominio.com\html\")

%>
<% = Count %>
<font size="2" face="Verdana, Arial, Helvetica, sans-serif">Documento subido</font></p>
<p>&nbsp;</p>
<p>
<input name="button" type=button onClick="javascript:self.close() ;" value="Cerrar ventana">
</p>


¿¿???
  #6 (permalink)  
Antiguo 02/10/2007, 04:13
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
Re: Pasar datos de una pop-up a un formulario

Es lo mismo. Cuando has ejecutado el script "subir_docu.asp" ya sabes los nombres que le has dado a los archivos. Basta poner dichos nombres en un campo oculto:

Código:
  <%

Set Upload = Server.CreateObject("Persits.Upload.1")
Count= Upload.Save("d:\xvrt\dominio.com\html\")

%>
<% = Count %> 
     <form name="data"><input type="hydden" name="nombres" value="<%

for each File in Upload.Files
' Aqui haces las operaciones de grabado de datos

' Les cambias los nombres o haces lo que tengas que hacer
' Luego haz un response.write con los nombres o nombre del archivo subido

      response.write(File.Name & ";")
 next

%>" /></form>
      <font size="2" face="Verdana, Arial, Helvetica, sans-serif">Documento subido</font></p>
  <p>&nbsp;</p>
  <p>
    <input name="button" type=button onClick="javascript:Cerrar() ;" value="Cerrar ventana">
  </p>
Haces una funcion JavaScript
Código:
function cerrar() {
     window.opener.document.form1.texto.value = document.data.nombres.value;
     window.close();
}
Y listo :)


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #7 (permalink)  
Antiguo 02/10/2007, 05:19
 
Fecha de Ingreso: septiembre-2005
Mensajes: 202
Antigüedad: 19 años, 7 meses
Puntos: 0
Re: Pasar datos de una pop-up a un formulario

pues no me aclaro...estoy espeso...en el

response.write(File.Name & ";")

como pongo el nombre (el nombre del campo del primer form)?

response.write("nombre")

y la funcion javascript es para pasar la info a la otra pagina o para cerrar el pop-up?

perdona, pero es que estoy super espeso....jorrrrrrr

Última edición por potenkin; 02/10/2007 a las 05:27
  #8 (permalink)  
Antiguo 02/10/2007, 07:29
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
Re: Pasar datos de una pop-up a un formulario

¿Como guardas los nombres de los archivos que subes al servidor? Por cada File que subes, hay un File.Name (nombre del archivo). Si cambias los nombres, pues esos nombres cambiados.

' Por cada archivo subido
For each File in Upload.Files
' imprime su nombre
response.write File.Name
nex

La funcion javascript tiene dos sentencias:

- Una asigna el valor del campo hidden que contiene los nombres de los archivos subidos y que ha sido asignado en el servidor.
- Cierra en Popup



Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #9 (permalink)  
Antiguo 03/10/2007, 03:33
 
Fecha de Ingreso: septiembre-2005
Mensajes: 202
Antigüedad: 19 años, 7 meses
Puntos: 0
Re: Pasar datos de una pop-up a un formulario

gracias
pero no consigo que funcione, te pongo el codigo de la pàgina asp, que teoricamente debe cerrarse y enviar la info a la pagina alta.asp en el form1 y en el campo "archivo"

con el javascript no se cierra la ventana del popup, por lo que le añado
<input name="button" type=button onClick="javascript:self.close();" value="Cerrar ventana" >
para cerrar el popup

------------------------------
<form name="data"><input type="hydden" name="nombres" value="
<%
for each File in Upload.Files
response.write(File.Name & ";")
next
%>" /></form>

<script>
function cerrar() {
window.opener.document.form1.arxivo.value = document.data.nombres.value;
window.close();
}
</script>

<input name="button" type=button onClick="javascript:self.close();" value="Tancar Finestra" >

------------------------------
  #10 (permalink)  
Antiguo 03/10/2007, 05:17
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
Re: Pasar datos de una pop-up a un formulario

Cambia esto

<input name="button" type=button onClick="javascript:self.close();" value="Tancar Finestra" >

por esto

<input name="button" type=button onClick="javascript:cerrar();" value="Tancar Finestra" >


Lo ideal sería meter la sentencia del opener en otra funcion que fuera llamada desde el evento onUnload pero mejor lo dejamos si no te lias



Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #11 (permalink)  
Antiguo 03/10/2007, 09:21
 
Fecha de Ingreso: septiembre-2005
Mensajes: 202
Antigüedad: 19 años, 7 meses
Puntos: 0
Re: Pasar datos de una pop-up a un formulario

bien!!
consigo transfererir datos al form principal cuando cierro el pop-up, pero....

el unico problema ahora es que en la pàgina del pop-up solo obtengo el nombre del campo del formulario, es decir

<INPUT TYPE=FILE SIZE=40 NAME="nombre">

en la pagina asp recojo siempre "nombre" (que es el nombre del Input type) y no el nombre del archivo que he selecionado en el en el disco duro y luego he subido al servidor, y al cerrar el popup siempre transfiero "nombre"

Última edición por potenkin; 03/10/2007 a las 09:31
  #12 (permalink)  
Antiguo 03/10/2007, 10:49
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
Re: Pasar datos de una pop-up a un formulario

Bueno, ahora solo te queda afinar ;)

Veamos. ¿has comprendido como envia ese "nombre" al formulario principal? es simplemente una cuestion de herencia: window.opener es la ventana "abridora" igual que window.document.formulario.campo hace referencia a un campo de un formulario de la ventana actual.

Veamos la operativa de la página que se abre en el popUp:
  1. - creas un documento HTML que espera que el usuario use el <input type="file" .... /> para cargar la imagen
  2. - El usuario pulsa enviar. Con lo cual la página se llama asi misma (hace un "postback") para cargar la imagen en el servidor.
  3. - El servidor recibe la imagen y la procesa (el cambia el nombre o no, la guarda en un directorio, etc). En ese momento tienes el nombre del archivo, ¿verdad?
  4. - Se envia al usuario otro documento HTML con un formulario oculto (sin boton Submit) que contiene un campo oculto <input type="hydden" name="nombres" value=" .... " />. En dicho campo, "guardas" el nombre del archivo.
  5. - Al usuario se le informa de que la imagen ha sido guardada correctamente y se la da la opción de Cerrar Ventana. ¿De acuerdo?
  6. - El usuario, al pulsar ese enlace, dispara la función javascript que envia el value de ese campo oculto (la función cerrar() ) al formulario principal.
Si tienes alguna duda, pon el código de ese script y podremos echarte una mano.



Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #13 (permalink)  
Antiguo 04/10/2007, 02:54
 
Fecha de Ingreso: septiembre-2005
Mensajes: 202
Antigüedad: 19 años, 7 meses
Puntos: 0
Re: Pasar datos de una pop-up a un formulario

1. - creas un documento HTML que espera que el usuario use el <input type="file" .... /> para cargar la imagen
OK
2. - El usuario pulsa enviar. Con lo cual la página se llama asi misma (hace un "postback") para cargar la imagen en el servido.
OK
3. - El servidor recibe la imagen y la procesa (el cambia el nombre o no, la guarda en un directorio, etc). En ese momento tienes el nombre del archivo, ¿verdad?

Aqui esta el problema, El servidor recibe la imagen correctamente y la procesa, pero no tengo el nombre del archivo, sinó el nombre del campo del formulario es decir:


Pagina 1. "subir_docu.html"
formulario para buscar la imagen en el disco duro y envia la info a "subir_docu.asp"


<FORM ACTION="subir_docu.asp" METHOD="POST" ENCTYPE="multipart/form-data" name="form_img">
<table width="400" border="0" align="center" cellpadding="3" cellspacing="0">
<tr>
<td bgcolor="#FFCC33"><font size="3" face="Verdana, Arial, Helvetica, sans-serif">Pujar
document</font></td>
</tr>
<tr>
<td><table width="100%" border="0" align="center" cellpadding="2" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#FFFFFF">&nbsp;</td>
</tr>
<tr>
<td bgcolor="#FFFFFF"><INPUT TYPE=FILE SIZE=40 NAME="nombre">
' este es el campo del formulario en el que busco la imagen en el disco duro
</td>
</tr>
<tr>
<td bgcolor="#FFFFFF"><input name="SUBMIT" type=SUBMIT value="Pujar Document">
</td>
</tr>
</table></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
</table>
</FORM>



pagina 2. "subir_docu.asp"
recibe la info de "subir_docu.html". Sube la imagen al servidor y recoge (teoricamente) el nombre del archivo, y despues envía este nombre a la pagina 3, que seria la que tiene el formulario que debe recogerlo.

<%

Set Upload = Server.CreateObject("Persits.Upload.1")
Count= Upload.Save("d:\xvrt\dominio.com\html\")

%>
<% = Count %>
<font size="2" face="Verdana, Arial, Helvetica, sans-serif">Document pujat.</font></p>

<form name="data"><input type="hydden" name="nom" value="<%

for each File in Upload.Files
response.write File.Name
' Aqui recoge el nombre del campo del formulario, no el nombre del archivo
next

%>" /></form>


<p>
<script>
function cerrar() {
window.opener.document.form1.arxiu_cat.value = document.data.nom.value;
window.close();
}
</script>

<input name="button" type=button onClick="javascript:self.cerrar();" value="Tancar Finestra" >
  #14 (permalink)  
Antiguo 04/10/2007, 04:12
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
Re: Pasar datos de una pop-up a un formulario

No conozco muy bien el componente upload de Persists pero supongo que tendrá alguna propiedad para averiguar el nombre del archivo (busca en San Google que seguro que por ahí anda) Si no es Name tiene que ser Path o algo por el estilo (no me fio de los objetos COM de terceros, prefiero hacerlo a mano ):

File.Path seguro que contiene tanto el nombre del archivo como el path donde se ha grabado. Si es asi, para sacar el nombre basta con extraerlo de esa propiedad

For each File in Upload.Files

NombreArchivo = mid(File.Path,instrrev(File.Path,"\")+1)

next

Prueba a ver si eso te vale.


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #15 (permalink)  
Antiguo 04/10/2007, 04:56
 
Fecha de Ingreso: septiembre-2005
Mensajes: 202
Antigüedad: 19 años, 7 meses
Puntos: 0
Re: Pasar datos de una pop-up a un formulario

Funciona!!!!!

muchas gracias tammander!!!, funciona con una ligera variacion

response.write mid(File.Path,instrrev(File.Path,"\")+1)

que bonitas son las aplicaciones web cuando funcionan bien...
lo dicho, muchas gracias


salut

Última edición por potenkin; 04/10/2007 a las 05:02
  #16 (permalink)  
Antiguo 04/10/2007, 07:33
Avatar de karmish  
Fecha de Ingreso: mayo-2006
Mensajes: 272
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: Pasar datos de una pop-up a un formulario

Un pequeño comentario:
Si te fijas el principio de este posto yo puse un codigo y en esta parte sale esto

Código:
Dim up, fich
set up = new xelUpload
up.Upload()
	
For each fich in up.Ficheros.Items

nombre=fich.Nombre

'Para guardarlo
'	Con el nombre de fichero original:
	fich.Guardar Server.MapPath("fotos")
'	Con otro nombre:
'	fich.GuardarComo nombrefichero, Server.MapPath("rutavirtual")
'----------------------------------------------------------------
Next
seguro devi marcar con rojo lo que te servia como a continuacion:
Código:
Dim up, fich
set up = new xelUpload
up.Upload()
	
For each fich in up.Ficheros.Items

nombre=fich.Nombre

'Para guardarlo
'	Con el nombre de fichero original:
	fich.Guardar Server.MapPath("fotos")
'	Con otro nombre:
'	fich.GuardarComo nombrefichero, Server.MapPath("rutavirtual")
'----------------------------------------------------------------
Next 
Siempre es bueno comparar los codigos que algunos te pasas y provar si te funcionan,
pero hay que tener paciensia, es verdad que derepente cuando a uno no le sales las cosas se altera mucho y quiere la respuesta rapido, a mi me a pasado muchas veces.
Saludos y ojo con las ayudas que te dan muchas veses uno pasa por alto algunos detalles.

Última edición por karmish; 04/10/2007 a las 07:36 Razón: agregar escrito
  #17 (permalink)  
Antiguo 04/10/2007, 08:05
 
Fecha de Ingreso: septiembre-2005
Mensajes: 202
Antigüedad: 19 años, 7 meses
Puntos: 0
Re: Pasar datos de una pop-up a un formulario

ok
tienes razón, los agobios a veces no te dejan ver con claridad...
gracias por todo
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 04:41.