Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/06/2012, 07:06
emeotero
 
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Compostela
Mensajes: 126
Antigüedad: 13 años
Puntos: 0
ejecutar PHP desde Javascript - Ajax

Hola, queria hacer una consulta a ver si alguien me puede ayudar pq no acierto con esto. El caso es q tengo un formulario para poder hacer un informe, le pido los datos a la base de datos, las consultas las hago con php etc. y de la BD obtengo un csv q transformo a excell para poder guardar o abrir. Si lo hago asi directamente no tengo problema, el problema lo tengo pq tengo q comprobar los rangos de fechas, entonces lo suyo sería enviarlo por AJAX ¿no? y sobre todo pensando en q no quiero q se abra una ventana vacia con la consulta php. entonces hago un script pero no me abre la ventanita para aceptar o abrir el excell.
este es mi script en ajax
Código HTML:
<script type="text/javascript">
function compareEslora(formname,field1,field2){
	f1=1*document.forms[formname].elements[field1].value;
	f2=1*document.forms[formname].elements[field2].value;
	if (f1>f2){alert("Compruebe que ha introducido bien los datos. Introduzca una eslora minima y una maxima!");return false;}else{return true;}
}
function enviarDatos(){
	var trips = document.getElementById('trips');
	probadate1 = document.getElementById('date1');
	proba_date1 = probadate1.value;
	probadate2 = document.getElementById('date2');
	proba_date2 = probadate2.value;
	probametier = document.getElementById('metier');//texto - nombre de metier
	proba_metier = probametier.value;
	probapuerto = document.getElementById('harbour');//texto - nombre de puerto
	proba_puerto = probapuerto.value;
	probabarco = document.getElementById('ship');//texto - nombre de barco
	proba_barco = probabarco.value;
	probaminimo = document.getElementById('min_eslora');//numero
	proba_minimo = probaminimo.value;
	probamaximo = document.getElementById('max_eslora');//numero
	proba_maximo = probamaximo.value;
	probaices = document.getElementById('zona_ices');//texto - nombre zona
	proba_ices = probaices.value;
	probarectangulo = document.getElementById('rectangulo_ices');//texto - nombre rectangulo
	proba_rectangulo = probarectangulo.value;
	probarte = document.getElementById('arte');//texto - nombre arte pesca
	proba_arte = probarte.value;
	compareDates('trips','date1','date2');//viene de otro script de calendario
	compareEslora('trips','min_eslora','max_eslora');
	url_proba='date1='+proba_date1+'&date2='+proba_date2+'&metier='+proba_metier+'&harbour='+proba_puerto+'&ship='+proba_barco+'&min_eslora='+proba_minimo+'&max_eslora='+proba_maximo+'&zona_ices='+proba_ices+'&rectangulo_ices='+proba_rectangulo+'&arte='+proba_arte;
	xhr(url_proba);
}
var xmlhttp;
function xhr(trips){ 
		if (window.XMLHttpRequest)
  			{
  				xmlhttp=new XMLHttpRequest();
	  		}
		else
	  		{
  				xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  		}
		xmlhttp.onreadystatechange = procesarRespuesta; 
		xmlhttp.open("POST", "report_export.php", true); 
		xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xmlhttp.setRequestHeader("Content-length", 10);
		xmlhttp.setRequestHeader("Connection", "close");
		xmlhttp.send(trips);
		}
	function procesarRespuesta(){
		if(xmlhttp.readyState == 4) {
      		if(xmlhttp.status == 200) {
				return xmlhttp;
			} 
    	}
}
</script> 
no tengo nada claro como hacer esa funcion procesarRespuesta para que me devuelva la ventanita windows de abrir o guardar.
esta es el export q hago en php
Código PHP:
 crea_archivo_csv_trips_report($_POST$dbconn$tmp_path.'trips_report.csv');
    
    try {
        
// Comprobar tamaño del archivo csv
        
if (filesize($tmp_path.'trips_report.csv') == || false) {
            throw new 
Exception("Consulta sin resultados");
        }
    } catch (
Exception $e) {
        echo 
'<script type="text/javascript">';
        echo 
'alert("Consulta sin resultados.")';
        echo 
'</script>';
        exit();
    }

    
// Convertir el csv en xls
    
csv2xls($tmp_path.'trips_report.csv'$tmp_path.'trips_report.xls'$glue=";"$enclosure='"');

    
envia_archivo_a_navegador($tmp_path.'trips_report.xls');    

    
// Closing connection 
alguien me puede decir algo. Gracias.