Ver Mensaje Individual
  #7 (permalink)  
Antiguo 02/07/2009, 04:59
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 10 meses
Puntos: 574
Respuesta: Seleccion de Combobox

Yo usaria ajax, debes entender que javascript "pasa" en el cliente y la consulta a la bbdd "pasa" en el servidor.

Aquí lo que estamos haciendo es usar javascript para construir una peticion al servidor, el "alert(..." de la linea que indicas tiene que sustituirse por la peticion al servidor. La petición la puedes hacer llamando una URL con lo que se recargará toda la pagina o puedes usar ajax para recargar una parte de la pagina...

Código HTML:
<script>
function clientSideInclude(id, url) {
  var req = false;
  // For Safari, Firefox, and other non-MS browsers
  if (window.XMLHttpRequest) {
    try {
      req = new XMLHttpRequest();
    } catch (e) {
      req = false;
    }
  } else if (window.ActiveXObject) {
    // For Internet Explorer on Windows
    try {
      req = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        req = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {
        req = false;
      }
    }
  }
 var element = document.getElementById(id);
 if (!element) {
  alert("Bad id " + id +
   "passed to clientSideInclude." +
   "You need a div or span element " +
   "with this id in your page.");
  return;
 }
  if (req) {
    // Synchronous request, wait till we have it all
    req.open('GET', url, false);
    req.send(null);
    element.innerHTML = req.responseText;
  } else {
    element.innerHTML =
   "Sorry, your browser does not support " +
      "XMLHTTPRequest objects. This page requires " +
      "Internet Explorer 5 or better for Windows, " +
      "or Firefox for any system, or Safari. Other " +
      "compatible browsers may also exist.";
  }
}
</script> 

clientSideInclude(id, url)

Esta funcion te permite cargar, en un div de la pagina, la url que llames sin recargar toda la pagina...


Luego imagina que tienes una pagina con el filtro y un div con id="resultado" y un archivo.php capaz de construir la sentencia sql, ejecutarla y poner el resultado de la consulta en una tabla...

Si sustituyes el "alert(..." por

clientSideInclude('resultado','archivo.php?campo='+ document.getElementById("campo").value
+'&contenido='+document.getElementById("contenido ").value
);

que te parece que va a pasar....


Quim

Última edición por quimfv; 02/07/2009 a las 05:10