Ver Mensaje Individual
  #6 (permalink)  
Antiguo 06/10/2011, 09:50
azaz
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 4 meses
Puntos: 10
Respuesta: con que evento puedo llamar a esta funcion js

Hos pongo codigo, pero antes deciros que lo que pretendo es que me muestre los datos de la funcion MostrarNombres cada vez que se seleciona la opcion en el select, pero no se como hacerlo, probe con el onchange y nada,Lo unico que me funciona bien es que el xml si me lo cambia segun la opcion elegida, pero no se como mostrar los datos de la funcion cada vez que cambia el xml.


El codigo que tengo es este:

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

Espero que algun esperto en js y ajax me pueda dar una respuesta para poder entender como hacerlo, saludos.

Última edición por azaz; 06/10/2011 a las 11:22