Foros del Web » Programando para Internet » Javascript »

Cargar datos con AJAX y HTML dinamico

Estas en el tema de Cargar datos con AJAX y HTML dinamico en el foro de Javascript en Foros del Web. Buenas a todos... Tengo un archivo index.html" en el cual cargo contenido HTML dinamicamente con esta funcion Javascript : //Codigo Javascript function cargarSubmodulo(id,desde) { $("#modules").load(desde); ...
  #1 (permalink)  
Antiguo 11/10/2016, 11:31
 
Fecha de Ingreso: abril-2016
Mensajes: 18
Antigüedad: 8 años, 8 meses
Puntos: 0
Información Cargar datos con AJAX y HTML dinamico

Buenas a todos...

Tengo un archivo index.html" en el cual cargo contenido HTML dinamicamente con esta funcion Javascript:

//Codigo Javascript
function cargarSubmodulo(id,desde)
{
$("#modules").load(desde);
document.getElementById("modules").style.display=" block";

if (id==1)
initSubModulo1();
if (id==2)
initSubModulo2();
if (id==3)
initSubModulo3();
}

"#modules" es el "<div>" en el cual quiero cargar contenido HTML dinamicamente.
"desde" es la ruta del archivo HTML que quiero cargar dinamicamente.
"id" es un identificador que me permite distinguir que contenido cargar.

Es decir, si "id"=1 se ejecutara la funcion "initSubModulo1()", la cual hace esto:

function initSubModulo1()
{
var xmlhttp;

if (window.XMLHttpRequest)
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();

else
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var opt = document.createElement("option");
opt.value = xmlhttp.responseText;
opt.text = xmlhttp.responseText;
document.getElementById("selcategoria").add(opt);
}
}

xmlhttp.open("POST",".lib/modulo4/linkModulo4.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("initSubModulo1=1");
}


Basicamente lo que hace esta funcion es cargar en un "input select" llamado "selcategoria" algunos valores extraidos de la Base de Datos con "linkModulo4.php".

El problema radica en que a veces carga y en otras no carga nada... Es necesario hacer doble click para que recien cargue todo bien... Por que a veces funciona bien y a veces no?

Mil gracias!!!
  #2 (permalink)  
Antiguo 11/10/2016, 14:53
 
Fecha de Ingreso: octubre-2009
Mensajes: 305
Antigüedad: 15 años, 2 meses
Puntos: 29
Respuesta: Cargar datos con AJAX y HTML dinamico

por el caché, tienes 2 opciones:

un parametro fantasma con un numero aleatorio en javascript

forzar el NOCACHE del lado del server con headers en php
  #3 (permalink)  
Antiguo 11/10/2016, 16:45
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Cargar datos con AJAX y HTML dinamico

1. La caché solo sucede con el método get.
2. Puede ser que la conexión entre el cliente y el servidor tenga problemas.
3. Puedes usar highlight y ordenar código porfavor.

Recomendacion:

Crear una función para declarar una instancia AJAX, es decir:

Código Javascript:
Ver original
  1. function createHTTPReq() {
  2.     try {
  3.     req = new XMLHttpRequest();
  4.     }
  5.     catch(err1){
  6.         try {
  7.         req = new ActiveXObject('Msxml2.XMLHTTP');
  8.         }
  9.         catch (err2) {
  10.             try {
  11.             req = new ActiveXObject("Microsoft.XMLHTTP");
  12.             }
  13.             catch (err3) {
  14.             req = false;
  15.             }
  16.         }
  17.     }
  18. return req;
  19. }
  20.    
  21. http = new createHTTPReq();

Ahora tienes el objeto http con métodos y atributos de AJAX. de aquí en adelante todo depende del programador. personalmente yo uso este método que es bien ordenado:

Código Javascript:
Ver original
  1. function requestPOST(){
  2. http.open("POST", "direccion de peticion", true);
  3. http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  4. http.onreadystatechange =tufuncion;
  5. http.send("variables codificadas");
  6. }
  7.  
  8. function tufuncion(){
  9.     if(http.readyState == 4){
  10.         if(http.status == 200){
  11.         var response = http.responseXML; //o http.responseText
  12.         //acá hacer algo...
  13.         }
  14.     }
  15. }

Claro está que la función requestPOST es cual será gatillada por js

Este método uso yo, pero te repito luego de declarar el objeto xmlhttprequest todo depende del programador...


Etiquetas: ajax, ajax-php, html, javascript+html, javascript+php, php, php+ajax
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 03:36.