Retroceder   Foros del Web > Programación para sitios web > AJAX

Respuesta
 
Herramientas Desplegado
Antiguo 12-abr-2006, 11:28   #1 (permalink)
sarverok007 ha deshabilitado el karma
 
Fecha de Ingreso: enero-2005
Mensajes: 115
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-abr-2006 a las 07:59. Razón: Creo que el titulo no estaba muy claro
sarverok007 está desconectado   Responder Citando
Antiguo 13-abr-2006, 09:10   #2 (permalink)
sarverok007 ha deshabilitado el karma
 
Fecha de Ingreso: enero-2005
Mensajes: 115
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:
sarverok007 está desconectado   Responder Citando
Antiguo 14-abr-2006, 03:23   #3 (permalink)
sarverok007 ha deshabilitado el karma
 
Fecha de Ingreso: enero-2005
Mensajes: 115
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:
sarverok007 está desconectado   Responder Citando
Antiguo 17-abr-2006, 16:38   #4 (permalink)
rafadc ha deshabilitado el karma
 
Fecha de Ingreso: septiembre-2005
Mensajes: 23
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.
rafadc está desconectado   Responder Citando
Antiguo 18-abr-2006, 04:54   #5 (permalink)
rafadc ha deshabilitado el karma
 
Fecha de Ingreso: septiembre-2005
Mensajes: 23
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?
rafadc está desconectado   Responder Citando
Respuesta

Calificación: Calificación de Tema: 1 votos, 5,00 de promedio.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 05:02.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93