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') == 0 || 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.