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

Problema con script sencillo AJAX

Estas en el tema de Problema con script sencillo AJAX en el foro de Frameworks JS en Foros del Web. Hola estoy tratando de hacer un ejemplo sencillo con AJAX, porque me estoy iniciando y quiero aplicarlo en mis scripts...pero nada, despues de hacer uno ...
  #1 (permalink)  
Antiguo 30/06/2006, 13:56
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 18 años, 8 meses
Puntos: 7
Problema con script sencillo AJAX

Hola estoy tratando de hacer un ejemplo sencillo con AJAX, porque me estoy iniciando y quiero aplicarlo en mis scripts...pero nada, despues de hacer uno desde 0 y leerme 20 ejemplos...cuando voy a hacer el mio no me funciona. Pueden echarle un vistazo rapido a ver donde esta el error? porque llevo toda la tarde y no lo veo....y me desespero.

Hay 2 archivos el prac_ajax.php y el talentos.php. Simplemente lo que trato de hacer es que lo que se escriba en el input con la id clase lo recoja el talentos.php y en funcion de eso luego me escriba un texto (en el ejemplo en vez de que recoja en el GET el div de clase, simplemente le he puesto un "holamundo" para ver si funcionaba, pero nada). Yo creo que es que ni me hace los readyState. Bueno lo dejo y a ver si alguien me puede ayudar

El archivo: prac_ajax.php
Código:
<script>
//PASO 1:
//Variable que recibira todos los parametros.
var ajax=new Browser(); //Creamos el ajax segun el navegador.
//ajax.overrideMimeType('text/xml');//Sobreescribimos cabecera (mas compatibilidad para navegadores).

//PASO 3:
function CallBack(){//Nos comprueba el estado de la peticion.
	//readyState:
	//0 = sin inicializar
	//1 = cargando
	//2 = cargado
	//3 = interactivo
	//4 = completo
	/*
	if(ajax.readyState==0){
		document.getElementById('talentos').innerHTML="Sin inicializar";
	}
	if(ajax.readyState==1){
		document.getElementById('talentos').innerHTML="Cargando...";
	}
	if(ajax.readyState==3){
		document.getElementById('talentos').innerHTML="Estado 2...";
	}
	if(ajax.readyState==3){
		document.getElementById('talentos').innerHTML="Estado 3...";
	}*/
	if(ajax.readyState==4){//Si el estado es 4 la peticion ha sido completada.
		if(ajax.status==200){//Si la respuesta HTTP ha sido 200 se ha recibido correctamente.
			//Escribimos el resultado (ajax.responseText).
			document.getElementById('talentos').innerHTML = "<b>"+ajax.responseText+"</b>";
		}else{
			document.getElementById('talentos').innerHTML = "<b>"+Se cometio algun tipo de error en el status+"</b>";
		}
	}	
}

//PASO 2:
function Browser(){ //Funcion que asignara el XMLHttpRequest segun el navegador
	if(window.XMLHttpRequest){
		navegador=new  XMLHttpRequest(); //Para navegadores distintos de Internet Explorer
	}else{ //Para Internet Explorer
		navegador=new ActiveXObject("Microsoft.XMLHTTP");
	}
	return navegador;
}

function EnviarPeticion(){
	//Paso 4: Creamos la peticion (GET)+(URL)+(TRUE=ENVIA).
	ajax.open("GET","talentos.php?clase=holamundo",true);
	
    //Ajax invoca 4 peticiones por proceso para comprobar el estado.
	//Almacenaremos el estado, segun cambie. Para ello tenemos
	//una funcion auxiliar "CallBack" que nos comprobara el estado de la peticion.
	ajax.onreadystatechange=CallBack; //Mirar PASO: 3. //Ojo k la funcion es sin parentesis.
	//Paso 4: Enviamos la peticion (SEND)
    ajax.send(null);
}

</script>
<input type="text" id="clase" size="77"/>
<input type="button" value="Enviar" onclick="EnviarPeticion()">
<br/>
<br/>
Talentos: <span id="talentos"></span>
talentos.php
Código:
<?
	// Obtener el parametro enviado
	$claseget=$_GET["clase"];
	echo $claseget;
	echo "hola mundillo que pasa?";//texto que se escriba
	echo $clase;//Si viene de otra manera que no es con el get y a ver si lo coge
	//tambien asi.

?>

Saludos y gracias desde ya.
  #2 (permalink)  
Antiguo 30/06/2006, 15:16
Avatar de Alwar  
Fecha de Ingreso: octubre-2005
Ubicación: Madrid
Mensajes: 27
Antigüedad: 18 años, 6 meses
Puntos: 0
Bueno, yo he copiado el script y le e quitado algunos cuantos comentarios, pero en la consola de js del firefox me sale esto:
Código:
Error: uncaught exception: [Exception... "Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIXMLHttpRequest.send]"  nsresult: "0x80520012 (NS_ERROR_FILE_NOT_FOUND)"  location: "JS frame :: file:///C:/Documents%20and%20Settings/Alwar/Escritorio/Ajax.htm :: EnviarPeticion :: line 49"  data: no]
¿A que se debe? dice que en la linea 49 no hay datos o algo asi no?, pero esque esa funcion envia null.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 05:33.