Foros del Web » Programando para Internet » Javascript »

Impresion de solo DIVS seleccionados x checkbox

Estas en el tema de Impresion de solo DIVS seleccionados x checkbox en el foro de Javascript en Foros del Web. Hola buenas noches. Tengo los 7 dias de la semana, cada uno con un div y cada div con un checkbox. Selecciono los checkbox y ...
  #1 (permalink)  
Antiguo 12/10/2007, 19:07
 
Fecha de Ingreso: noviembre-2005
Ubicación: Torreon Coahuila
Mensajes: 100
Antigüedad: 19 años
Puntos: 1
Impresion de solo DIVS seleccionados x checkbox - SOLUCIONADO

Hola buenas noches.

Tengo los 7 dias de la semana, cada uno con un div y cada div con un checkbox.
Selecciono los checkbox y envio el formulario a la misma pagina.

Código PHP:
<input type='submit' name='imprimir' value='Imprimir' Onclick='document.form.submit()'>
</center>
<br>
<?
$imprimir
=$_POST['imprimir'];
if(isset(
$imprimir))  
{    
        
$lunes=$_POST['Lunes'];
        
$martes=$_POST['Martes'];
        
$miercoles=$_POST['Miercoles'];
        
$jueves=$_POST['Jueves'];
        
$viernes=$_POST['Viernes'];
        
$atrazadas=$_POST['ATRAZADAS'];
        if(
$lunes=='on')  
        {    
        echo 
"<a href='#' onclick=\"impre('Lunes');return false\">Lunes</a><br>";
        } 
        if(
$martes=='on')  
        {    
        echo 
"<a href='#' onclick=\"impre('Martes');return false\">Martes</a><br>";
        } 
        if(
$miercoles=='on')  
        {    
        echo 
"<a href='#' onclick=\"impre('Miercoles');return false\">Miercoles</a><br>";
        } 
        if(
$jueves=='on')  
        {    
        echo 
"<a href='#' onclick=\"impre('Jueves');return false\">Jueves</a><br>";
        } 
        if(
$viernes=='on')  
        {    
        echo 
"<a href='#' onclick=\"impre('Viernes');return false\">Viernes</a><br>";
        } 
        if(
$atrazadas=='on')  
        {    
        echo 
"<a href='#' onclick=\"impre('ATRAZADAS');return false\">Atrazadas</a><br>";
        } 
?>
Hasta ahi todo bien me muestra solo los checkbox de los dias de la semana que seleccione.
Pero quiero que automaticamente despues de aver enviado empieze a imprimir los DIVS que seleccione, para eso hago lo siguiente.
Aqui es donde esta mi duda.
Como imprimo todos los DIVS seleccionados al iniciar la pagina???asi??

Código:
</script>
window.onLoad = impre('ATRAZADAS');
<script>
o asi?

Código:
</script>
window.onLoad = impre('ATRAZADAS,Lunes,Martes');
<script>

Este codigo me lo encontre aqui e imprime los divs
Código PHP:
<html>
<
head>
<
style type="text/css">
@
media print {
div,{display:none}
.
ver {display:block}
.
nover {display:none}
}
</
style>
<
script>
function 
impre(num) {
document.getElementById(num).className="ver";
print();
document.getElementById(num).className="nover";
}
</script>
</head>

<body>
<div id="uno">
Artículo primero
</div>
<a href="#" onclick="impre('uno');return false">Imprime 1</a>
<div id="dos">
Artículo segundo
</div>
<a href="#" onclick="impre('dos');return false">Imprime 2</a>
<div id="tres">
Articulo tercero
</div>
<a href="#" onclick="impre('tres');return false">Imprime 3</a>
</body>
</html> 

Saludos y ojala alguien pueda echame la mano...
buenas noches tengan

Última edición por losporros; 14/10/2007 a las 14:42 Razón: RESUELTO
  #2 (permalink)  
Antiguo 13/10/2007, 08:57
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 1 mes
Puntos: 45
Re: Impresion de solo DIVS seleccionados x checkbox

Hola losporros:

Bueno, un ejemplo así la verdad es que no te cargaría en el onload de la página:
Código:
window.onLoad = impre('ATRAZADAS,Lunes,Martes');
Además onload se escribe todo en minúsculas y necesita una función sin parámetros. De esta manera escrito, en cuanto la línea se lea se ejecuta la función impre(), y queremos que se ejecute en el onload.

Para llamarla con varios argumentos, tendrás que preparar la función impre() para indefinidos argumentos:

Código PHP:
function impre() {
  for(var 
i=0i<arguments.lengthi++)
  
document.getElementById(arguments[i]).className="ver";
  print();
  for(var 
i=0i<arguments.lengthi++)
  
document.getElementById(arguments[i]).className="nover";


window.onload = function() {
  
impre('ATRAZADAS','Lunes','Martes');

Entonces al cargar te pondría las capas que llevan por id 'ATRAZADAS', 'Lunes' y 'Martes' visibles para imprimir (según la hoja de estilos) y mandaría imprimir. Luego las restauraría a invisibles de nuevo.

No lo he probado, pero digo yo que así funcionaría.

Por cierto, en la primera línea de tu código:
Código HTML:
<input type='submit' name='imprimir' value='Imprimir' Onclick='document.form.submit()'> 
¿Qué sentido tiene ahí el onclick?



Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #3 (permalink)  
Antiguo 13/10/2007, 15:12
 
Fecha de Ingreso: noviembre-2005
Ubicación: Torreon Coahuila
Mensajes: 100
Antigüedad: 19 años
Puntos: 1
Re: Impresion de solo DIVS seleccionados x checkbox

Cita:
Iniciado por derkenuke Ver Mensaje
Hola losporros:

Bueno, un ejemplo así la verdad es que no te cargaría en el onload de la página:
Código:
window.onLoad = impre('ATRAZADAS,Lunes,Martes');
Además onload se escribe todo en minúsculas y necesita una función sin parámetros. De esta manera escrito, en cuanto la línea se lea se ejecuta la función impre(), y queremos que se ejecute en el onload.

Para llamarla con varios argumentos, tendrás que preparar la función impre() para indefinidos argumentos:

Código PHP:
function impre() {
  for(var 
i=0i<arguments.lengthi++)
  
document.getElementById(arguments[i]).className="ver";
  print();
  for(var 
i=0i<arguments.lengthi++)
  
document.getElementById(arguments[i]).className="nover";


window.onload = function() {
  
impre('ATRAZADAS','Lunes','Martes');

Entonces al cargar te pondría las capas que llevan por id 'ATRAZADAS', 'Lunes' y 'Martes' visibles para imprimir (según la hoja de estilos) y mandaría imprimir. Luego las restauraría a invisibles de nuevo.

No lo he probado, pero digo yo que así funcionaría.

Por cierto, en la primera línea de tu código:
Código HTML:
<input type='submit' name='imprimir' value='Imprimir' Onclick='document.form.submit()'> 
¿Qué sentido tiene ahí el onclick?



Un saludo.


Ah es que iba a mandar el formulario con los checkbox seleccionados por medio de un enlace y mejor lo envie por un boton.
Cada checkbox es un DIV, pero era x eso
  #4 (permalink)  
Antiguo 13/10/2007, 20:07
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 1 mes
Puntos: 45
Re: Impresion de solo DIVS seleccionados x checkbox

Bueno pero... ¿te ha funcionado?
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #5 (permalink)  
Antiguo 14/10/2007, 13:45
 
Fecha de Ingreso: noviembre-2005
Ubicación: Torreon Coahuila
Mensajes: 100
Antigüedad: 19 años
Puntos: 1
Re: Impresion de solo DIVS seleccionados x checkbox

Gracias Derkenuke me funciono

Asi quedo ya completo

Código PHP:
<?
function dias2()
{
$imprimir=$_POST['imprimir'];
if(isset(
$imprimir))  
{
foreach(
$_POST['dias'] as $indice => $tmp

  
$diasTmp[$indice] = "'".$tmp."'"

$dias $diasTmp
$dias2 implode(','$dias);  
?>
<style type="text/css">
@media print 
{
div,a {display:none}
.ver {display:block}
.nover {display:none}
}
</style>
<script>
function impre() 

  for(var i=0; i<arguments.length; i++) 
  document.getElementById(arguments[i]).className="ver"; 
  print(); 
  for(var i=0; i<arguments.length; i++) 
  document.getElementById(arguments[i]).className="nover"; 
}  
window.onload = function() 

  impre(<?=$dias2?>);  
}  
</script>
<? } } ?>
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:52.