Foros del Web » Programando para Internet » Javascript »

Pasar un DIV y su contenido en una variable

Estas en el tema de Pasar un DIV y su contenido en una variable en el foro de Javascript en Foros del Web. Hola, tengo el siguiente problema: yo a través de un javascript hago lo siguiente: Cita: function imprimir(id) { var envio = "imprimir.asp" + "?parte=" + ...
  #1 (permalink)  
Antiguo 03/10/2008, 15:00
 
Fecha de Ingreso: febrero-2008
Mensajes: 578
Antigüedad: 16 años, 3 meses
Puntos: 3
Pasar un DIV y su contenido en una variable

Hola, tengo el siguiente problema:

yo a través de un javascript hago lo siguiente:

Cita:
function imprimir(id)
{
var envio = "imprimir.asp" + "?parte=" + id;
var ventana = window.open(envio,"_blank","left=0,top=0,width=300 ,height=300,toolbar=no,location=no,status=no,menub ar=no,resizable=no,scrollbars=1");
}
hasta ahí OK, lo que estoy haciendo es que al momento de llamar al javascript le estoy pasando un id del div que quiero imprimir.

Entonces, tengo la página imprimir.asp donde recupero esa variable, pero no me toma toda la estructura de lo que había dentro del div, se entiende ?

yo por ejemplo recupero las variables pero cuando le paso un numero o sino una cadena de texto, pero no se puede pasar toda un div con su contenido a través de una variable??

espero poder hacerme entender...

saludos y desde ya muchas gracias
  #2 (permalink)  
Antiguo 03/10/2008, 15:03
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
Exclamación Respuesta: Pasar un DIV y su contenido en una variable

Usa el método POST que es mejor para pasar variables largas y pasa todo el contenido del div usando innerHTML en vez del id (ya que pasando este no podrás obtener su contenido desde la página ASP ).
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 03/10/2008, 22:43
 
Fecha de Ingreso: febrero-2008
Mensajes: 578
Antigüedad: 16 años, 3 meses
Puntos: 3
Respuesta: Pasar un DIV y su contenido en una variable

Gracias David el Grande, pero no estoy entendiendo del todo.

Trataré de explicarlo mejor en este ejemplo:

Código HTML:
<html>
<head>
<script language="JavaScript">
function imprimir(id)
{
var envio = "imprimir.asp" + "?parte=" + id;
var ventana = window.open(envio,"_blank","left=0,top=0,width=300,height=300,toolbar=no,location=no,status=no,menubar=no,resizable=no,scrollbars=1");
}
</script>
</head>
<body>
<div class="contenido">
  <div class="menu">
     <a href="javascript:imprimir('print')">Imprimir</a>
  </div>
  <div id="print">
    <span>DIV A IMPRIMIR</span><br>
    <span>DIV A IMPRIMIR</span><br>
    <span>DIV A IMPRIMIR</span><br>
  </div>
</div>
</body>
</html> 

y luego en mi archivo imprimir.asp tengo lo siguiente:

Código HTML:
<%@LANGUAGE="JAVASCRIPT"%>
<%  var mostrar = Request.QueryString("parte"); %>
<html>
<head>
</head>
<body>
<% = mostrar %>
</body>
</html> 
y la idea es que el archivo imprimir.asp se muestre en un popup de 300 x 300 tal como dice el javascript, se entiende ?

la cosa es que no me muestra ningun div, entonces como se utiliza eso de innerHTML ?? o con este ejemplo no sirve ?
  #4 (permalink)  
Antiguo 05/10/2008, 18:33
 
Fecha de Ingreso: febrero-2008
Mensajes: 578
Antigüedad: 16 años, 3 meses
Puntos: 3
Respuesta: Pasar un DIV y su contenido en una variable

Nadie me podría decir??
jaja parece que mis ejemplos son malos... mmm tendré que recapacitar en la forma de presentarlos
  #5 (permalink)  
Antiguo 06/10/2008, 12:58
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
Exclamación Respuesta: Pasar un DIV y su contenido en una variable

Hazme caso, no le pases el id, porque el id para la otra página no significa nada . Pasa el contenido (objeto.innerHTML), investiga sobre el innerHTML y sabrás de qué se trata.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 06/10/2008, 15:07
 
Fecha de Ingreso: febrero-2008
Mensajes: 578
Antigüedad: 16 años, 3 meses
Puntos: 3
Respuesta: Pasar un DIV y su contenido en una variable

Probé esto:

Cita:
function imprime()
{
var contenido = document.getElementById("print");
var ventana = window.open('', "_blank", "left=0,top=0,width=650,height=500,toolbar=no,loca tion=no,status=no,menubar=no,resizable=no,scrollba rs=1");
ventana.document.write('<html><head><title>Articul o para imprimir</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">');
ventana.document.write('</head>');
ventana.document.write('<body leftmargin="0" topmargin="2" marginwidth="0" marginheight="0">');
ventana.document.write(contenido.innerHTML);
ventana.document.write('</body>');
ventana.document.close();
ventana.print();
ventana.close();
}
eso funciona perfecto, pero yo quiero que el pop up no esté en un archivo JS, me gustaría que la ventana abra la pagina imprimir.asp y en dicha pagina recupero todo el div que quiero imprimir, me entiendo ? tal como puse en el ejemplo anterior

gracias y muy amable david
  #7 (permalink)  
Antiguo 07/10/2008, 07:43
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
De acuerdo Respuesta: Pasar un DIV y su contenido en una variable

Bueno, ahora ya sabes de qué se trata innerHTML .

Puedes pasar los datos a la página usando el método GET o POST, creo que es mejor POST debido a que el contenido del div puede ser algo extenso.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 07/10/2008, 08:20
 
Fecha de Ingreso: febrero-2008
Mensajes: 578
Antigüedad: 16 años, 3 meses
Puntos: 3
Respuesta: Pasar un DIV y su contenido en una variable

Gracias David por la paciencia, te comento:

Yo no tengo ningún formulario ni nada para pasar el div por el metodo POST.

Tengo toda mi página realizada con <div> y lo único que hago es poner un texto en la parte superior que dice: "Imprimir", entonces mi idea es que al hacer click ahí se abra un popup (enviandole el nombre del id del div a imprimir) y este popup que llama a la página imprimir.asp, y en dicha página imprimir.asp debo poder recuperar toda una estructura de div que le envié por variable.

Esto lo muestro en el siguiente ejemplo:

Código HTML:
<html>
<head>
<script language="JavaScript">
function imprimir(id)
{
var envio = "imprimir.asp" + "?parte=" + id;
var ventana = window.open(envio,"_blank","left=0,top=0,width=300,height=300,toolbar=no,location=no,status=no,menubar=no,resizable=no,scrollbars=1");
}
</script>
</head>
<body>
<div class="contenido">
  <div class="menu">
     <a href="javascript:imprimir('print')">Imprimir</a>
  </div>
  <div id="print">
    <span>DIV A IMPRIMIR</span><br>
    <span>DIV A IMPRIMIR</span><br>
    <span>DIV A IMPRIMIR</span><br>
  </div>
</div>
</body>
</html> 
y mi archivo imprimir sería:

Código HTML:
<%@LANGUAGE="JAVASCRIPT"%>
<%  var mostrar = Request.QueryString("parte"); %>
<html>
<head>
</head>
<body>
<% = mostrar %>
</body>
</html> 
entonces mi pregunta es como hago para pasar desde un javascript, toda una estructura de de <div> para luego recuperarla en un asp ??
  #9 (permalink)  
Antiguo 07/10/2008, 08:33
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
Respuesta: Pasar un DIV y su contenido en una variable

No creo que la forma como estás haciendo sea la más correcta, pero bueno, ya que quieres pasar el contenido del div, pasa por la URL (en vez de pasar el id pasa el innerHTML), solo no olvides escapar los caracteres especiales.

Pregunto, ¿por qué no usas Javascript nuevamente en el popup para obtener el contenido del div? Pues de todas formas los datos estás enviando por Javascript.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #10 (permalink)  
Antiguo 07/10/2008, 10:53
 
Fecha de Ingreso: febrero-2008
Mensajes: 578
Antigüedad: 16 años, 3 meses
Puntos: 3
Respuesta: Pasar un DIV y su contenido en una variable

Gracias nuevamente.

Ok, entonces lo hago por javascript, pero sigo teniendo la misma duda: en base al ejemplo que postee antes, como hago para que un Javascript puesto en una página B, me recupere los datos que le mando desde un javascript de la página A .

entiendo lo que me dices, pero no entiendo la funcionalidad, podrías darme un pequeño ejemplo coom hice yo anteriormente ?
  #11 (permalink)  
Antiguo 07/10/2008, 10:59
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
Respuesta: Pasar un DIV y su contenido en una variable

Es que básicamente no necesitas pasar el valor al popup ya que desde el popup podemos obtener directamente el valor del div:
Código javascript:
Ver original
  1. alert(opener.document.getElementById("iddiv").innerHTML);
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #12 (permalink)  
Antiguo 08/10/2008, 10:47
 
Fecha de Ingreso: febrero-2008
Mensajes: 578
Antigüedad: 16 años, 3 meses
Puntos: 3
Respuesta: Pasar un DIV y su contenido en una variable

Gracias David el Grande, pero sería mucho pedirte si me puedes poner un ejemplo completo de lo que quiero hacer ?... porque no me está dando resultados.

Disculpame las molestias igualmente y desde ya nuevamente muchas gracias.
  #13 (permalink)  
Antiguo 08/10/2008, 10:50
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
Respuesta: Pasar un DIV y su contenido en una variable

Es que con ese código estamos haciendo referencia directamente al documento desde donde se llamó al popup (opener.document) y accedemos al div usando su id y finalmente accedemos al innerHTML. No entiendo qué otro ejemplo podría ponerte, ese código que te pasé debería ir en la página que se carga en el popup (lo que hace es mostrar en un alert el contenido del div), haz las pruebas y nos cuentas.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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:59.