Foros del Web » Programando para Internet » PHP »

FPDF window.open

Estas en el tema de FPDF window.open en el foro de PHP en Foros del Web. Hola: acudo a ustedes porque necesito su ayuda y yo sé que alguien podrá echarme la mano, llevo días intentano lo mismo y yo solita ...
  #1 (permalink)  
Antiguo 16/10/2009, 10:44
 
Fecha de Ingreso: marzo-2009
Mensajes: 19
Antigüedad: 15 años, 7 meses
Puntos: 0
FPDF window.open

Hola:

acudo a ustedes porque necesito su ayuda y yo sé que alguien podrá echarme la mano, llevo días intentano lo mismo y yo solita no avanzo mucho jejeje

tengo lo siguiente, la interfaz con un select que contiene los 12 meses del año, el usuario selecciona el mes que desee y valido que realmente haya selecciona alguno mandano a llama a la función reportes en el onsubmit

Código HTML:
<form name="f" onSubmit="reporte(); return false">
                 <select name="meses" id="meses">
                                      <option value="0">Seleccione Mes</option>
                                      <option value="01">Enero</option>
                                      <option value="02">Febrero</option>
                                      <option value="03">Marzo</option>
                                      <option value="04">Abril</option>
                                      <option value="05">Mayo</option>
                                      <option value="06">Junio</option>
                                      <option value="07">Julio</option>
                                      <option value="08">Agosto</option>
                                      <option value="09">Septiembre</option>
                                      <option value="10">Octubre</option>
                                      <option value="11">Noviembre</option>
                                      <option value="12">Diciembre</option>
                     </select>
<input type="submit" name="aceptar" value="Aceptar"/>
</form> 
esta es la función javascript, utilizo ajax para enviar el valor seleccionado del combo al archivo php, el cual crea un archivo pdf para un reporte.

mi problema es que no sé en que momento utilizar el window.open('folios.php') porque no me está tomando en cuenta la variable o no sé que es lo que está pasando. crea el archivo en pdf pero está en blanco, la variable no lleva nada

Código:
function validaCombo1(){
	var meses, imeses, tmeses, vmeses;	
		meses=document.getElementById("meses").selectedIndex;
		imeses =document.getElementById("meses");
		tmeses = imeses.options[imeses.selectedIndex].text;
		vmeses = document.getElementById("meses").value;
		
	if(vmeses==0){
		alert("Selecciones el mes para generar el reporte");
		return;
	}else{
		ajax=objetoAjax();
					ajax.open("POST", "folios.php",true);
					ajax.onreadystatechange=function(){
						if(ajax.readyState==4){
							window.open('folios.php');
						} 
					}
	ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");		
	ajax.send("tmeses="+tmeses);
	}
}
este es parte de mi código php donde recibo el valor del mes y genero el archivo pdf

Código PHP:
<?php
    
include("../conexion.php");
    require(
"fpdf/fpdf.php");
    
$tmeses=$_POST['tmeses'];
    
                class 
PDF extends FPDF{
                    function 
Header(){
                        
$fecha date("d/m/Y");
                        
$horadate("H:i:s");
                        
$this->SetFont('verdana','',12);
                        
$this->Cell(25,3,'Consejo Veracruzano de Ciencia y Tecnología (COVECYT)',0,0,'C');
                        
$this->SetFontSize(12);
                        
$this->Cell(-46,3,'Fecha: '.$tmeses);
                        
$this->Ln(1);
                        
$this->Cell(3.4,2,'Hora: '.$hora,0,0,'C');
                    }
ETCETCETC
agradecería que alguien me puediera ayudar, por favor...!
  #2 (permalink)  
Antiguo 16/10/2009, 10:46
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 11 meses
Puntos: 20
Respuesta: FPDF window.open

ese es todo el codigo php??
  #3 (permalink)  
Antiguo 16/10/2009, 10:53
Avatar de bacdavi  
Fecha de Ingreso: junio-2006
Ubicación: http://localhost/
Mensajes: 351
Antigüedad: 18 años, 5 meses
Puntos: 7
Respuesta: FPDF window.open

Proba con tu codigo ajax asi:

Código AJAX:
Ver original
  1. function validaCombo1(){
  2.     var meses, imeses, tmeses, vmeses; 
  3.         meses=document.getElementById("meses").selectedIndex;
  4.         imeses =document.getElementById("meses");
  5.         tmeses = imeses.options[imeses.selectedIndex].text;
  6.         vmeses = document.getElementById("meses").value;
  7.     if(vmeses==0){
  8.         alert("Selecciones el mes para generar el reporte");
  9.         return;
  10.     }else{
  11.         ajax=objetoAjax();
  12.         ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");     
  13.         ajax.open("POST", "folios.php",true);
  14.         ajax.send("tmeses="+tmeses);
  15.     }
  16. }

me contas si te sirve...
  #4 (permalink)  
Antiguo 20/10/2009, 11:39
 
Fecha de Ingreso: marzo-2009
Mensajes: 19
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: FPDF window.open

Hola...

Pue si intenté como dices pero no ni siquiera abre el archivo php, porque igual no sé donde poner el window.open.

Pero muchas gracias....
  #5 (permalink)  
Antiguo 23/10/2009, 16:15
Avatar de iandrade  
Fecha de Ingreso: septiembre-2006
Ubicación: Xalapa, Veracruz, MÉXICO.
Mensajes: 171
Antigüedad: 18 años, 2 meses
Puntos: 6
Respuesta: FPDF window.open

Te recomiendo que mejor pases los valores por get y te olvides de AJAX ya que esta duplicandole el trabajo al servidor y el archivo resultante, no tiene los datos que le pasas.

o

Un form con un target="_blank" y pases por post los valores del formulario
Código HTML:
<form name="f" onSubmit="return reporte();" target="_blank" action="folios.php" method="post">
                 <select name="meses" id="meses">
                                      <option value="0">Seleccione Mes</option>
                                      <option value="01">Enero</option>
                                      <option value="02">Febrero</option>
                                      <option value="03">Marzo</option>
                                      <option value="04">Abril</option>
                                      <option value="05">Mayo</option>
                                      <option value="06">Junio</option>
                                      <option value="07">Julio</option>
                                      <option value="08">Agosto</option>
                                      <option value="09">Septiembre</option>
                                      <option value="10">Octubre</option>
                                      <option value="11">Noviembre</option>
                                      <option value="12">Diciembre</option>
                     </select>

<input type="hidden" name="tmeses" id="tmeses" value=""/>
<input type="submit" name="aceptar" value="Aceptar"/>
</form> 
Código:
function reporte(){
	var meses, tmeses, vmeses;
	var obj =document.getElementById("meses");
	meses   = obj.selectedIndex;
	tmeses  = obj.options[obj.selectedIndex].text;
	vmeses  = parseInt(obj.value);

	if(vmeses==0){
		alert("Selecciones el mes para generar el reporte");
		return false;
	}else{
		document.getElementById("tmeses").value = tmeses;
		return true;
	}
}
__________________
No todo lo que se hace en segundo plano es AJAX

Última edición por iandrade; 23/10/2009 a las 16:24
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 14:42.