Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/06/2015, 18:58
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: mODAL O NO MODAL?. SER O NO SER?

Usando una ventana emergente, solo tendrías que cancelar el envío del formulario y abrir una ventana emergente, añadiendo la dirección hacia la cual se enviará el dato (junto al dato concatenado en la query string) y, en el archivo PHP, realizarás la búsqueda en la base de datos y mostrarás los resultados.

Código HTML:
Ver original
  1. <!-- En la cabecera del formulario -->
  2. <form onsubmit = "emergente(event, this)">

Código Javascript:
Ver original
  1. function emergente (evento, form){
  2.     event.preventDefault(); //Cancelo el envío
  3.     var direccion = form.action + "?valor=" + document.form.nombreDelCampo.value;
  4.     window.open(direccion, "Búsqueda", "width=700, height=500"); //Abro una ventana emergente
  5. }

Código PHP:
Ver original
  1. $valor = $_GET['valor'];
  2.  
  3. //A partir de acá, harás la búsqueda y mostrarás los resultados que se verán en la ventana emergente

Y si quieres usar una ventana modal, el proceso es similar, con la salvedad de que no usarás el método window.open() sino un contenedor que servirá como ventana modal (previamente deberás de aplicarle estilos) y tanto el envío del dato como la recepción de la respuesta la harás mediante una petición asíncrona (Ajax).

Código Javascript:
Ver original
  1. function emergente (evento, form){
  2.     event.preventDefault(); //Cancelo el envío
  3.     var direccion = form.action + "?valor=" + form.nombreDelCampo.value,
  4.         xhr = new XMLHttpRequest(); //Creo un objeto XHR (Ajax)
  5.    
  6.     xhr.open(form.method, direccion, true); //Inicializo la petición
  7.     xhr.send(); //Realizo el envío
  8.     xhr.addEventListener("load", function(){ //Cuando se complete el proceso
  9.         if (xhr.status == 200){ //Si obtengo una respuesta satisfactoria
  10.             //Muestro en el contenedor la respuesta de la petición
  11.             document.querySelector("#el id del contenedor").innerHTML = xhr.responseText;
  12.             //Acá deberás de aplicar estilos en el contenedor para que se muestre como una ventana modal
  13.         }
  14.     }, false);
  15. }

Para este segundo caso, el archivo PHP se conserva como en el primero. La respuesta a visualizarse será lo que imprimas en el archivo PHP.

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