Foros del Web » Programando para Internet » Javascript »

Ajax problema principiante

Estas en el tema de Ajax problema principiante en el foro de Javascript en Foros del Web. Hola buenas noches amigos de forosdelweb me dejaron un ejercicio muy simple tengo que hacer un cuestionario y con base a la respuesta seleccionada dar ...
  #1 (permalink)  
Antiguo 25/03/2016, 00:53
 
Fecha de Ingreso: marzo-2016
Mensajes: 4
Antigüedad: 8 años, 2 meses
Puntos: 0
Ajax problema principiante

Hola buenas noches amigos de forosdelweb me dejaron un ejercicio muy simple tengo que hacer un cuestionario y con base a la respuesta seleccionada dar información , al momento de seleccionar la respuesta se debe ejecutar información acerca de ella, ya tengo todos mis archivos programados pero no se por que no funciona

Todos mis archivos están en la misma ubicación

Este es el archivo practicaAjax.html
Código PHP:
<!DOCTYPE html>
<
html lang="en">
<
head>
    <
meta charset="UTF-8">
    <
link rel="stylesheet" href="estilo.css">
    <
script src="procesa.js" type="text/javascript" ></script>
    <title>Ajax</title>
</head>
<body>
   
       <p class="pregunta"> Selecciona la espuesta correcta</p> 
       <p class="pregunta"> ¿Quienes conformaban la tripe alianza?</p>
       
         <pre class="respuesta">
         a) Tenochtitlan, texcoco y tlacopan
         b) Venezuela, Perú, Bolivia
         c) No existe
         </pre> 
         
         <select id="seleccion" onchange="iniciar()">
         <option >Selecciona una respuesta</option>
         <option value="a">Respuesta A</option>
         <option value="b">Respuesta B</option>
         <option value="c">Respuesta C</option>
        </select>
         
         <p id="contestacion"></p>
    
</body>
</html> 
Este es el archivo procesa.js
Código PHP:
var xhr;

function 
iniciar()
{
     
xhr = new XMLHttpRequest();
     
enviarpeticion();
}


function 
enviarpeticion()
{
    var 
seleccionar document.getElementById("seleccion").value;
    
    switch(
seleccionar)
        {
            case 
"a":
                
xhr.open("GET""respuestaa.txt"true);
                
xhr.onreadystatechange=procesardatos();
                
xhr.send(null);
                break;
            case 
"b":
                
xhr.open("GET""respuestab.txt"true);
                
xhr.onreadystatechange=procesardatos();
                
xhr.send(null);
                break;
            case 
"c":
                
xhr.open("GET""respuestac.txt"true);
                
xhr.onreadystatechange=procesardatos();
                
xhr.send(null);
                break;
        }
    
}

function 
procesardatos()
{
    if(
xhr.readyState==)
        
document.getElementById("contestacion").innerHTML xhr.responseText;

y bueno cada archivo respuesta.txt esta en la misma carpeta con su respectiva información pero no se por que no se muestra en el navegador al seleccionar una respuesta espero me puedan ayudar , muchas gracias
  #2 (permalink)  
Antiguo 25/03/2016, 09:26
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 11 meses
Puntos: 1012
Respuesta: Ajax problema principiante

Cuando intentas obtener el valor del combox, éste no tiene valor. Pasarle como parámetro (this.value) a la función iniciar() y después a la función enviarpeticion()
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 25/03/2016, 23:18
 
Fecha de Ingreso: marzo-2016
Mensajes: 4
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Ajax problema principiante

Ya encontre mi error y esta en llamar a las funciones vengo de programacion en C y siempre le pongo parentesis a una funcion por que asi la llamas por ejemplo funcion(); pero en javascript es diferente porque un par de parentesis luego del nombre de la funcion indica invocacion en ese momento y lo que devuelva esa invocacion es lo que se asigna a la propiedad. en este caso, la intencion es que el evento utilice esa funcion como manejador (event handler). o sea, en javascript, para pasar una funcion como referencia se le pasa el nombre de la funcion o el contendor de estar definido en una propiedad/variable esto lo lei de zerokilled es por eso que la funcion
Código HTML:
Ver original
  1. xhr.onreadystatechange=procesardatos();
deberia ser
Código HTML:
Ver original
  1. xhr.onreadystatechange=procesardatos
por eso no funcionaba

Etiquetas: 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 09:11.