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

porque no me funciona este codigo js utilizando ajax

Estas en el tema de porque no me funciona este codigo js utilizando ajax en el foro de Frameworks JS en Foros del Web. Hola hos cuento un poco, trata de una consulta php que realizo de forma asincronica, con esta consulta creo un archivo xml, con el que ...
  #1 (permalink)  
Antiguo 05/10/2011, 13:13
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 11 meses
Puntos: 10
porque no me funciona este codigo js utilizando ajax

Hola hos cuento un poco, trata de una consulta php que realizo de forma asincronica, con esta consulta creo un archivo xml, con el que quiero trabajar con el dom de js, osea que quiero mostrar los resultados del xml en pantalla, segun la opcion que elija en el select, pero no me muestra los resultados pero el xml si me lo realiza y me lo cambia segun la opcion pero yo quiero que me muestre esos resultados en pantalla y los cambie sin recargar la pagina osea de forma asincronica.

Hos dejo codigo por si alguien me quiere ayudar.

Aqui tengo las funciones js que utilizo para mostrar datos de forma asincronica

funciones js
Código Javascript:
Ver original
  1. var procesamiento, xml = null, contador=0;
  2. function MostrarRegistro() {
  3.         try {
  4.                 document.getElementById("registro").innerHTML ='<p>'+ xml.getElementsByTagName('nombre')[contador].firstChild.nodeValue+'</p>';
  5.                 contador ++;
  6.         }
  7.         catch(e) {
  8.                        document.getElementById("registro").innerHTML = '';
  9.                        contador = 0;
  10.         }
  11. }
  12.  
  13. function MostrarNombres() {
  14.         var ajax = objetoAjax();
  15.         ajax.open('get','archivo.xml');
  16.         ajax.onreadystatechange = function() {
  17.                 if(ajax.readyState == 4){
  18.                         if(ajax.status == 200) {
  19.                                 xml=ajax.responseXML;
  20.                                 if(xml.getElementsByTagName('nombre').length > 0)
  21.                                         procesamiento = window.setInterval(MostrarRegistro, 4000);
  22.                         }
  23.                 }
  24.         }
  25.         ajax.send(null);
  26. }
  27.  
  28.  
  29. function objetoAjax()   {
  30.         if (window.XMLHttpRequest)
  31.             _ajax = new XMLHttpRequest();
  32.         else
  33.             if (window.ActiveXObject)
  34.                 _ajax = new ActiveXObject("Microsoft.XMLHTTP");
  35.             else
  36.                 _ajax = false;
  37.         return _ajax;
  38.     }
  39.    
  40. window.onload=MostrarNombres();
  41.  
  42.  
  43. function pedir(dato) {
  44.     Ajax = objetoAjax();
  45.     Ajax.open("get","recuperar.php?seccion=" + dato, true);
  46.     Ajax.onreadystatechange = function() {
  47.       if (Ajax.readyState == 4 && (Ajax.status == 200 || Ajax.status == 501)){
  48.        document.getElementById('recuperar_datos').innerHTML=Ajax.responseText;
  49.         }
  50.      }
  51.      Ajax.send(null);
  52.     }


aqui es el script donde tengo el select y el div para mostrar los datos

mostrar_datos.php

Código PHP:
Ver original
  1. <head>
  2.         <script type="text/javascript" language="javascript" src="funciones.js"></script>
  3. </head>
  4. <body>
  5. <form method="get">
  6. <select name="seccion" id="seccion" onchange="pedir(document.getElementById('seccion').value)">
  7.     ...
  8. </select>
  9. </form>
  10.    
  11. <div id="recuperar_datos">
  12. <?php
  13. $consulta="select * from nombres where seccion='".$_GET['seccion']."'";
  14. ?>
  15. </div>
  16.  
  17. <?php
  18. //aqui creo el xml dependiendo de la consulta que me cambia dinamicamente
  19. ?>
  20.  
  21. <div id="registro"></div>

este script es donde recupero los datos de forma asincronica

recuperar.php

Código PHP:
Ver original
  1. <?php
  2. //creo la conexion y creo la consulta que debe cambiar
  3. $consulta="select * from nombres where seccion='".$_GET['seccion']."'";
  4. ?>


Realmente lo que quiero es que cuando selecione una opcion me cambie los datos en pantalla, osea que si pongo un submit en el select me los cambia pero esto no quiero ya que no quiero recargar la pagina.

Saludos.

Última edición por azaz; 06/10/2011 a las 01:18

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 01:40.