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

actualizar datos sin recargar pagina

Estas en el tema de actualizar datos sin recargar pagina en el foro de Frameworks JS en Foros del Web. Buenas tardes: Ayuda por favor!!! Llevo hora averiguando porque la función de abajo(PARA ACTUALIZAR DATOS SIN RECARGAR PÁGINA), funciona perfectamente con todos los elementos (tablas, ...
  #1 (permalink)  
Antiguo 09/08/2017, 13:23
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 9 meses
Puntos: 0
actualizar datos sin recargar pagina

Buenas tardes:
Ayuda por favor!!!
Llevo hora averiguando porque la función de abajo(PARA ACTUALIZAR DATOS SIN RECARGAR PÁGINA), funciona perfectamente con todos los elementos (tablas, div, htl, etccc), pero cuando recargo con algún dato como XML, como el ejemplo de abajo ya no lo visualizo

Código:
function Ajax(){
	var xmlhttp=false;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
		   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			xmlhttp = false;
  		}
	}
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}

function OrdenarPor(campo,desde,hasta,tiempo,dato){
	//especificamos en div donde se mostrará el resultado
	divListado = document.getElementById('listado');
	
	ajax=Ajax();
	
	//especificamos el archivo que realizará el listado
	//y enviamos las dos variables: campo y orden
	ajax.open("GET", "listado_anual2.php?campo="+campo+"&desde="+desde+"&hasta="+hasta+"&tiempo="+tiempo+"&dato="+dato);
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4) {
			alert (divListado.innerHTML = ajax.responseText);
		}
	}
	ajax.send(null)
}
Respuesta ayax
Código:
 <script src="../fusion/js/fusioncharts.js"></script>

<script type="text/javascript">

FusionCharts.ready(function () {

    var myChart = new FusionCharts({

      "type": "mscolumn3D",

      "renderAt": "chartContainer2",

      "width": "1080",

      "height": "600",

      "dataFormat": "xml",

      "dataSource": '<chart caption="Estadísticas de Gastos totales por apartamentos "  formatNumberScale="0"  placevaluesinside= "1" rotatevalues= "0" divlinealpha= "50" plotfillalpha= "80"  drawCrossLine= "1" crossLineColor= "#cc3300" crossLineAlpha= "100"  theme="zune"><categories><category label="DIANA" /><category label="MAITE" /><category label="SAN FELIPE 3º" /><category label="SAN RAFAEL 1º" /><category label="VERACRUZ" /></categories><dataset seriesName="Año2013"><set value="0"/><set value="0"/><set value="20"/><set value="0"/><set value="0"/></dataset><dataset seriesName="Año2014"><set value="20"/><set value="0"/><set value="0"/><set value="0"/><set value="0"/></dataset><dataset seriesName="Año2015"><set value="0"/><set value="20"/><set value="0"/><set value="0"/><set value="0"/></dataset><dataset seriesName="Año2016"><set value="314"/><set value="228"/><set value="60"/><set value="60"/><set value="220"/></dataset></chart>'

    });


  myChart.render();

});


</script>   

      <div  id="chartContainer2"><!--FusionCharts XT will load here! </div>
  #2 (permalink)  
Antiguo 10/08/2017, 00:01
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: actualizar datos sin recargar pagina

Porque cuando la respuesta obtenida en la petición asíncrona es XML, ajax.responseText debe cambiar a ajax.responseXML.

Para evitar conflictos con lo que ya tienes hecho, usaría un sexto argumento en la función OrdenarPor() y una condición para determinar si se leerá la respuesta por ajax.responseText o ajax.responseXML. E incluso por JSON.parse(ajax.responseText) si fuera JSON.

  #3 (permalink)  
Antiguo 10/08/2017, 00:20
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: actualizar datos sin recargar pagina

Gtracias por contestar,
No funciona tampoco, en realidad me expresé mal...
L a respuesta Ajax es una función javasctript para generar un archivo XML en la página de destino.

Lo que no entiendo por que la pagina de destino recibe cualquier cosa menos esta función.
  #4 (permalink)  
Antiguo 10/08/2017, 10:47
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: actualizar datos sin recargar pagina

Ya veo. Es porque, como explica la documentación oficial, ese método (.ready()) se ejecuta cuando la librería (FusionCharts) se encuentre lista para ser usada, o, como también dice en la documentación, se ejecuta cuando ha terminado de cargarse el modelo de objetos del documento (DOM), momento en el cual se dispara el evento DOMContentLoaded, el cual termina ejecutando al método en cuestión, pero como la petición asíncrona ocurre después de eso, no sucede el efecto esperado.

Imagino que ese segundo bloque de código que muestras, que constituye la respuesta a la petición asíncrona, está en un documento PHP puesto que es hacia "listado_anual2.php" que envías los datos. Y también imagino que esos datos que se muestran en la construcción del gráfico son resultado de procesos en ese archivo PHP. Sabiendo esto, podrías tan solo devolver los datos de los procesos en el archivo PHP y en el archivo inicial (en donde lanzas la petición asíncrona) elaborarías el gráfico haciendo uso de la librería y de esos datos.

  #5 (permalink)  
Antiguo 10/08/2017, 11:19
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: actualizar datos sin recargar pagina

Muchas gracias
Ciertamente , sencillo y eficaz

Etiquetas: ajax, form, funcion, html, javascript, 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 06:53.