Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/05/2014, 18:52
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 6 meses
Puntos: 977
Respuesta: select que refresque una pagina

Como bien dices, con una petición asíncrona (Ajax), lograrías tu cometido. En el archivo en el que se encuentra el <select>, debes tener el siguiente código JS:

Código Javascript:
Ver original
  1. var select = document.getElementsByName("actividad")[0],
  2.     salida = document.getElementById("salida"), //Elemento para listar los datos
  3.     ajax = function(url, objetivo){
  4.         var xhr = window.XMLHttpRequest ?
  5.                   new XMLHttpRequest() :
  6.                   new ActiveXObject("Microsoft.XMLHTTP") ||
  7.                   new ActiveXObject("Msxml2.XMLHTTP");
  8.  
  9.         xhr.open("GET", url, true);
  10.         xhr.onreadystatechange = function(){
  11.             if (xhr.readyState == 4){
  12.                 switch (xhr.status){
  13.                     case 200:
  14.                         objetivo.innerHTML = xhr.responseText;
  15.                         break;
  16.                     case 404:
  17.                         objetivo.innerHTML = "La dirección brindada no existe";
  18.                         break;
  19.                     default:
  20.                         objetivo.innerHTML = "Error: " + xhr.status;
  21.                         break;
  22.                 }
  23.             }
  24.         };  
  25.         xhr.send(null);
  26.     };
  27.  
  28. select.addEventListener("change", function(){
  29.     ajax("proceso.php?" + this.name + "=" + this.value, salida);
  30. }, false);

Con esto, mostrarás en el elemento de id salida (o el que desees asignarle), el resultado de la petición, la cual será lo que devuelva el archivo proceso.php. En dicho archivo, deberás recibir el dato como $_GET['actividad'], realizas la búsqueda en la tabla de la base de datos y emites un resultado, el cual será lo que la función Ajax finalmente asignará como contenido del elemento salida. Puedes tener a la función Ajax en un archivo JS aparte, así la reutilizas en todos los archivos en los que necesites realizar peticiones asíncronas.

Si tienes dudas acerca del uso de peticiones asíncronas (Ajax), nada mejor para despejarlas que leyendo una buena guía sobre el tema: http://librosweb.es/ajax/

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand