Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Como cargo en un DIV con AJAX una pagina que contiene codigo AJAX

Estas en el tema de Como cargo en un DIV con AJAX una pagina que contiene codigo AJAX en el foro de Frameworks JS en Foros del Web. Hola mi problema es el siguiente: tengo una pagina index.html que tiene un div dentro del cual cargo una pagina .php hasta aqui todo bien, ...
  #1 (permalink)  
Antiguo 12/04/2006, 11:28
 
Fecha de Ingreso: enero-2005
Mensajes: 115
Antigüedad: 19 años, 10 meses
Puntos: 1
Pregunta Necesito forzar la carga de un script de la pagina que cargo en un DIV mediante AJAX

Hola mi problema es el siguiente:
tengo una pagina index.html que tiene un div dentro del cual cargo una pagina .php hasta aqui todo bien, pero una de las paginas .php que cargo tiene una tabla que se organiza dependiendo de en que campo clickeo. Esto tmb lo hago mediante javascript, DOM, ...
El problema es que esta pagina que organiza la tabla dinamicamente si la cargo sola funciona bien y si hago click en algun header de la tabla pues se organiza, PEEEEROO si a esta misma pagina la llamo desde la pagina principal index.html y la meto en un div, pues no funciona la auto-organizacion!!!
¿Puedo llamar a una pagina mediante AJAX para cargarla en un div, esto ya se que si porque ya lo hago perooo..., y si a esta pagina que cargo tiene codigo AJAX, javascript, Dom, ....? Que debo hacer????
¿Como lo hago?Pues ya he puesto los links a los .js en todas las paginas!

Gracias por adelantado
__________________
SaRvErOk :ojotes:

Última edición por sarverok007; 14/04/2006 a las 07:59 Razón: Creo que el titulo no estaba muy claro
  #2 (permalink)  
Antiguo 13/04/2006, 09:10
 
Fecha de Ingreso: enero-2005
Mensajes: 115
Antigüedad: 19 años, 10 meses
Puntos: 1
Exclamación

Bueno voy a explicarme mejor, he probado varios scripts para hacer listas autoorganizadas con php, ajax y javascript. Aqui os dejo las direcciones:
http://www.dhtmlgoodies.com/index.ht...sortable_table
http://webfx.eae.net/dhtml/sortablet...abletable.html
y la verdad es que todos los ejemplos me funcionan bien cuando los ejecuto en una pagina php o html. Pero lo que yo necesito es que se carguen en un <div> de mi pagina principal, ya tengo la funcion que carga las paginas mediante ajax y no ha habido ningun problema en cargar otras paginas PHP pero no puedo cargar estas listas autoorganizadas y que sigan siendo autoorganizadas, el script para la auto organizacion deja de funcionar. He provado a cargar los scripts de ejemplo de la segunda URL en mi <div> de mi pagina index pero dejan de funcionar las autoorganizaciones y si cargo los ejemplos en una pagina sola si que funcionan. Que estoy haciendo mal???????
Gracias!!!
__________________
SaRvErOk :ojotes:
  #3 (permalink)  
Antiguo 14/04/2006, 03:23
 
Fecha de Ingreso: enero-2005
Mensajes: 115
Antigüedad: 19 años, 10 meses
Puntos: 1
Exclamación Promebla con la carga de una pagina en un DIV mediante una funcion AJAX

He hecho algunas pruebas y he llegado a la conclusion que el problema se debe a que cuando desde la pagina principal llamo a la funcion AJAX para que cargue la pagina secundaria en un <div> de la principal la funcion AJAX lee perfectamente todo el codigo de la pagina secundaria pero no me lee una funcion JAVASCRIPT que tengo debajo de la unica tabla de la pagina secundaria. Como fuerzo a que se lea esa funcion JAVASCRIPT una vez se haya leido y ejecutado todo el codigo php que hay anteriormente (en esa pagina) a la funcion ???????
Alguna idea de como forzar a la ejecucion del codigo JAVASCRIPT al llamar a la pagina mediate una funcion AJAX?? Hay alguna forma de hacerlo??
Aqui os dejo un resumen del codigo de la segunda pagina:

Código HTML:
<html><head>...</head><body>
//....Aqui va algo de codigo PHP y acceso a la BD
<table class="sort-table" id="table_sort" width="770" cellspacing="0">
  <thead>
    <tr>
       .....
    </tr>
  </thead>
  <tbody>
    <?php while($row=mysql_fetch_array($result)){ ?>
    <tr>
       ......
    </tr>
    <?php } ?>
  </tbody>
</table>

<script type="text/javascript">
//<![CDATA[
//NECESITO FORZAR LA EJECUCION DE ESTO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
function addClassName(el, sClassName) {
	var s = el.className;
	var p = s.split(" ");
	var l = p.length;
	for (var i = 0; i < l; i++) {
		if (p[i] == sClassName)
			return;
	}
	p[p.length] = sClassName;
	el.className = p.join(" ");

}

function removeClassName(el, sClassName) {
	var s = el.className;
	var p = s.split(" ");
	var np = [];
	var l = p.length;
	var j = 0;
	for (var i = 0; i < l; i++) {
		if (p[i] != sClassName)
			np[j++] = p[i];
	}
	el.className = np.join(" ");
}

var st = new SortableTable(document.getElementById("table_sort"),
	["None", "Number", "CaseInsensitiveString",  "CaseInsensitiveString", "Number", "CaseInsensitiveString", "CaseInsensitiveString", "None"]);
//	alert("Esto se acaba de cargar");

// restore the class names
st.onsort = function () {
	var rows = st.tBody.rows;
	var l = rows.length;
	for (var i = 0; i < l; i++) {
		removeClassName(rows[i], i % 2 ? "odd" : "even");
		addClassName(rows[i], i % 2 ? "even" : "odd");
	}
};


//]]>
</script> 


Gracias por la ayuda??
__________________
SaRvErOk :ojotes:
  #4 (permalink)  
Antiguo 17/04/2006, 16:38
 
Fecha de Ingreso: septiembre-2005
Mensajes: 23
Antigüedad: 19 años, 1 mes
Puntos: 0
Tengo exactamente el mismo problema que tu.

Me parece que el problema es que al cambiar el contenido del div no interpreta el javascript que hubiera en el interior.

Habría que encontrar una manera que si ejecutase lo que se retorne.
  #5 (permalink)  
Antiguo 18/04/2006, 04:54
 
Fecha de Ingreso: septiembre-2005
Mensajes: 23
Antigüedad: 19 años, 1 mes
Puntos: 0
Una posible idea:

¿Se podría recorrer el arbol XML en busca de elementos script y hacer un eval de su contenido?

Yo lo estoy intentando haciendo

Código:
var scripts = request.responseXML.getElementsByTagName('script');
	  
	  for (var i=0; i < scripts.length ; i++) {
	    eval(scripts.item(i));
	  }
Pero nunca llega a entrar en el for.

¿Alguna idea?
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 15:10.