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 originalvar procesamiento, xml = null, contador=0;
function MostrarRegistro() {
try {
document.getElementById("registro").innerHTML ='<p>'+ xml.getElementsByTagName('nombre')[contador].firstChild.nodeValue+'</p>';
contador ++;
}
catch(e) {
document.getElementById("registro").innerHTML = '';
contador = 0;
}
}
function MostrarNombres() {
var ajax= obtiene_http_request();
ajax.open('get','archivo.xml');
ajax.onreadystatechange = function() {
if(ajax.readyState == 4){
if(ajax.status == 200) {
xml=ajax.responseXML;
if(xml.getElementsByTagName('nombre').length > 0)
procesamiento = window.setInterval(MostrarRegistro, 4000);
}
}
}
ajax.send(null);
}
function obtiene_http_request() {
if (window.XMLHttpRequest)
_ajax = new XMLHttpRequest();
else
if (window.ActiveXObject)
_ajax = new ActiveXObject("Microsoft.XMLHTTP");
else
_ajax = false;
return _ajax;
}
window.onload=MostrarNombres();
function pedir(dato) {
Ajax = objetoAjax();
Ajax.open("get","recuperar.php?seccion=" + dato, true);
Ajax.onreadystatechange = function() {
if (Ajax.readyState == 4 && (Ajax.status == 200 || Ajax.status == 501)){
document.getElementById('recuperar_datos').innerHTML=Ajax.responseText;
}
}
Ajax.send(null);
}
aqui es el script donde tengo el select y el div para mostrar los datos
mostrar_datos.php
Código PHP:
Ver original<head>
<script type="text/javascript" language="javascript" src="funciones.js"></script>
</head>
<body>
<form method="get">
<select name="seccion" id="seccion" onchange="pedir(document.getElementById('seccion').value)">
...
</select>
</form>
<div id="recuperar_datos">
<?php
$consulta="select * from nombres where seccion='".$_GET['seccion']."'";
//aqui creo el xml dependiendo de la consulta que me cambia dinamicamente
?>
</div>
<div id="registro"></div>
este script es donde recupero los datos de forma asincronica
recuperar.php
Código PHP:
Ver original<?php
//creo la consulta que debe cambiar de forma asincronica y crear el xml dinamico
$consulta="select * from nombres where seccion='".$_GET['seccion']."'";
//aqui creo el archivo xml
?>
Espero que algun esperto en js y ajax me pueda dar una respuesta para poder entender como hacerlo, saludos.