tengo una duda sobre como hacer lo siguiente (a ver si soy capaz de explicarlo). Tengo una pagina en la que mediante un script en ajax cargo diferentes paginas en un div, el id=informe del codigo de abajo, al seleccionar cada una de las opciones.
Código:
En ese div "informe" selecciono cualquiera de los link me "escribe" la pagina php correspondiente. Ahora bien al ejecutar el form, lo que quiero hacer es que me haga una comprobación si hay un error me salte un mensaje o si no que siga adelante con la ejecucion PERO dentro del div donde esta la pagina que tiene el form.<div id="destino"> <div id="central"> <div class="report"> <div class="parte"><a href="#" onclick="cargarContenido('uno.php')"/><?php echo $lang['text_109']; ?></a></div> <div class="parte"><a href="#" onclick="cargarContenido('dos.php')"/><?php echo $lang['text_99']; ?></a></div> <div class="parte"><a href="#" onclick="cargarContenido('tres.php')"/><?php echo $lang['text_100']; ?></a></div> <div class="parte"><a href="#" onclick="cargarContenido('cuatro.php')"/><?php echo $lang['text_101']; ?></a></div> <div class="parte"><a href="#" onclick="cargarContenido('cinco.php')"/><?php echo $lang['text_102']; ?></a></div> </div> <div id="informe"></div> </div> </div>
hago lo siguiente:
Código HTML:
<form action="reporte.php" method="post" id="Haul" name="Haul" onSubmit="return validarDatos();"> ... resto del form... <input name="OK" type="submit" value="OK" /> <input name="cancelar" type="reset" value="Cancel" />
la pagina reporte.php tiene
Código:
esto escribe en un fichero csv el resultado de la consulta php. paginas_reporte.js dice donde tiene que ser cargado.<?php include_once 'common.php'; require("funciones.php"); require("config.php"); require("csv2xls.php"); // Conexión a la base de datos $conn_string = "host=$db_host port=$db_port dbname=$db_name user=$db_user password=$db_pass"; $dbconn = pg_connect($conn_string); // Se crea el archivo csv con el historial crea_archivo_csv_reporte($_POST, $dbconn, $tmp_path.'reporte.csv'); ?> <link rel="stylesheet" type="text/css" href="css/reporte.css" /> <script type="text/javascript" src="js/paginas_reporte.js"></script> <script type="text/javascript" src="js/tw-sack.js"></script> <div class="centro" align="center"> <div class="reportwo"> <div class="info_erro"><?php echo $lang['text_137']; ?><a href="#" onclick="cargarContenido('uno.php')"/>volver</div> <div class="info_erro_image"></div> </div> <?php try { // Comprobar tamaño del archivo csv if (filesize($tmp_path.'reporte.csv') == 0 || false) { throw new Exception("Consulta sin resultados"); } } catch (Exception $e) { exit(); } // Convertir el csv en xls csv2xls($tmp_path.'reporte.csv', $tmp_path.'reporte.xls', $glue=";", $enclosure='"'); envia_archivo_a_navegador($tmp_path.'reporte.xls'); // Closing connection pg_close($dbconn); ?> </div>
Código HTML:
// JavaScript Document// Documento JavaScript function cargarContenido(pagina){ var ajaxPag = new sack(); ajaxPag.requestFile = pagina; //Si se necesita pasar algún parámetro se usa: ajaxPag.setVar('nombreDeVariable',valorDeVariable); ajaxPag.method = "GET"; ajaxPag.runResponse = whenResponsePag; ajaxPag.execute = true; ajaxPag.runAJAX(); } function whenResponsePag(){ var mydiv = document.getElementById("informe"); //Esto carga en el <div> destino la página solicitada mydiv.innerHTML = this.response; /* Si la página solicitada contiene script Javascript se añade esto para que lo ejecute*/ /*var elementos = mydiv.getElementsByTagName('script'); for(var i=0;i<elementos.length;i++) { var elemento = elementos[i]; var nuevoScript = document.createElement('script'); nuevoScript.text = elemento.innerHTML; nuevoScript.type = 'text/javascript'; if(elemento.src!=null && elemento.src.length>0) nuevoScript.src = elemento.src; elemento.parentNode.replaceChild(nuevoScript,elemento); }*/ }