Foros del Web » Programando para Internet » Javascript »

ejecutar script en pagina q viene de Ajax

Estas en el tema de ejecutar script en pagina q viene de Ajax en el foro de Javascript en Foros del Web. Hola, tengo una duda sobre como hacer lo siguiente (a ver si soy capaz de explicarlo). Tengo una pagina en la que mediante un script ...
  #1 (permalink)  
Antiguo 31/07/2012, 07:18
 
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Compostela
Mensajes: 126
Antigüedad: 13 años
Puntos: 0
ejecutar script en pagina q viene de Ajax

Hola,
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:
<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>
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.
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 función validarDatos(); hace una comparacion de fechas.
la pagina reporte.php tiene
Código:
<?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>
esto escribe en un fichero csv el resultado de la consulta php. paginas_reporte.js dice donde tiene que ser cargado.
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);
    }*/
}
en fin, una ayuda? gracias!
  #2 (permalink)  
Antiguo 01/08/2012, 02:50
 
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Compostela
Mensajes: 126
Antigüedad: 13 años
Puntos: 0
Respuesta: ejecutar script en pagina q viene de Ajax

Que tonteria xD!! me estaba complicando la vida pensando que tenía que hacer algo por culpa del script de ajax y lo he arreglado con un simple

<a href="#" onclick="history.back(); return false"/>return</a>

no se si sera lo mas elegante, pero por lo menos funciona

Etiquetas: ajax, html, input, js, php
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 16:25.