Foros aprenderaprogramar.com
		Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: gatoher en 18 de Marzo 2017, 15:36
		
			
			- 
				Hola a todos, estoy algo atascado con un problema, bueno ya digo que de javascript no estoy muy puesto. Estoy tratando de crear una clase en javascript que reciba dos parámetros, una con una opcion para que luego PHP carge segun la petición unos combos o selects u otros. El segundo parámetro es que archivo PHP va encargarse de ello, esta claro que hay varios.
 
 Bueno mi idea era esa, tener un script en javascript que intanciara una peticion  XMLHttpRequest y luego la hiciera y devolviera un objeto JSON con los datos.
 
 Esta clase o script, no he conseguido hacer de verdad una clase  javascript :'(, pero me funciona, pero con una pega. Tengo que poner un alert para que le de tiempo a cargar el objeto JSON.
 
 Os la pongo:
 
 var objCarg;
 
 function ConexionAJAX(archivo, opcion) {
 
 
 this.crearConexionAJAX =  function devuelvoConexionAJAX() {
 
 if(window.XMLHttpRequest){
 peticion = new XMLHttpRequest();
 }else if (window.ActiveXObject){
 peticion= new ActiveXObject('Microsoft.XMLHTTP');
 }
 
 peticionCargar =  peticion;
 peticionCargar.onreadystatechange = cargoDatosConexion;
 //Aqui le digo que archivo PHP se va a encargar de trabajar e
 peticionCargar.open("POST", "../Controlador/Elementos_AJAX/"+archivo, true);
 peticionCargar.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
 //Dentro de cada archivo hay varios if, dependiendo de la opcion se encarga un metodo o otro
 peticionCargar.send(opcion);
 
 
 function cargoDatosConexion() {
 
 if(this.readyState === READY_STATE_COMPLETE && this.status === 200){
 //funciona
 try{
 objCarg = JSON.parse(peticionCargar.responseText);
 
 } catch(e){
 
 }
 
 }
 
 
 }
 //alert('dddd'); si descomento funciona perfecto
 return objCarg;
 };
 
 };
 
 Bueno lo llamo asi desde cualquier script:
 
     var conRegistrarse  = new ConexionAJAX('cargarElementos.php?"', "opcion=PG");
 //Metodo que javascript que carga los options para verlos
 cargarGeneroRegistrarse(conRegistrarse.crearConexionAJAX());
 delete conRegistrarse;
 Sé que el problema esta que cuando creo la instancia el metodo:
 
 peticionCargar.onreadystatechange = cargoDatosConexion;
 
 No tienen tiempo a recuperar los datos, ya que el script no se para a esperarlos  ;D, por eso si descomento el alert devuelve undefined.
 
 A mi me gustaria poder hacer que el metodo principal:
 
 this.crearConexionAJAX =  function devuelvoConexionAJAX()
 
 me devolviera el objeto ya cargado JSON, osea return objCarg. Pero se me ha atragantado  :-\.
 
 Supongo que haciendo una clase de verdad se podría solucionar esto. ¿Alguna ayuda?
- 
				Buenas, no estoy seguro de lo que puede estar pasando pero veo un diseño de código un tanto extraño. Te recomendaría seguir la forma de diseño y ejemplos que se dan en el curso de Ajax disponible en http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=83&Itemid=212
 
 Salu2