Foros del Web » Programando para Internet » PHP »

Pasar formulario a una ventana modal

Estas en el tema de Pasar formulario a una ventana modal en el foro de PHP en Foros del Web. Hola, buenos dias....Quiero enviar los datos del formulario a consul_perso.php mediante una ventana modal. y los recibo con $_POST, no pasa $_POST. entiendo que no ...
  #1 (permalink)  
Antiguo 14/07/2014, 01:46
 
Fecha de Ingreso: abril-2010
Mensajes: 96
Antigüedad: 14 años
Puntos: 0
Pasar formulario a una ventana modal

Hola, buenos dias....Quiero enviar los datos del formulario a consul_perso.php mediante una ventana modal. y los recibo con $_POST, no pasa $_POST. entiendo que no pase, porque no lo hago con el action del formulario, pero sabeis de que forma puedo hacerlo ? Gracias

Código:
 echo "   <a href=#consul_perso input name=consultar type=submit class=btn btblue >CONSULTAR</a>"; // 



   <div id="consul_perso" class="modalmask">
    <div class="modalbox movedown">
        <a href="#close" title="Close" class="close">X</a>
       <?php
 
 include "consultas/consul_perso.php"; // Aqui quiero recibir el array $_POST con datos del form.
 
 ?>
 
   </div>
</div> // entre estas dos etiquetas div se muestra la ventana modal
  #2 (permalink)  
Antiguo 14/07/2014, 12:51
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Pasar formulario a una ventana modal

Al momento de hacer el include, el formulario aun no se envio, por este motivo no podras recibirlo de forma directa, la solucion es que al enviar el formulario, envies por ajax los valores a consul_perso.php y al finalizar la peticion, muestres en la ventana modal el resultado de dicho script.

Eso se hace con javascript.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #3 (permalink)  
Antiguo 15/07/2014, 02:32
 
Fecha de Ingreso: abril-2010
Mensajes: 96
Antigüedad: 14 años
Puntos: 0
Respuesta: Pasar formulario a una ventana modal

Cita:
Iniciado por NSD Ver Mensaje
Al momento de hacer el include, el formulario aun no se envio, por este motivo no podras recibirlo de forma directa, la solucion es que al enviar el formulario, envies por ajax los valores a consul_perso.php y al finalizar la peticion, muestres en la ventana modal el resultado de dicho script.

Eso se hace con javascript.

He consseguido mandar todos los datos del formulario a consul_perso.php con esta linea:

Código:
 <a href="javascript:document.formulario.submit();" onClick="enviar(3)">Enviar formulario</a>
como llamo al div para que me los muestre la ventana modal desde javascript ?? desde php es muy sencillo

<a href="#etiquetadiv" >link</a>
  #4 (permalink)  
Antiguo 15/07/2014, 09:25
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Pasar formulario a una ventana modal

como te indique eso se hace con ajax desde javascript, tu ahi no estas usando ajax...
Aqui hay un ejemplo de como hacer lo que quieres: http://jquery-manual.blogspot.com.ar...ax-jquery.html si no deseas usar jquery, puedes hacer la peticion manualmente con xmlhttprequest pero en ambos casos, la solucion es por javascript no por php
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #5 (permalink)  
Antiguo 16/07/2014, 05:47
 
Fecha de Ingreso: abril-2010
Mensajes: 96
Antigüedad: 14 años
Puntos: 0
Respuesta: Pasar formulario a una ventana modal

Cita:
Iniciado por NSD Ver Mensaje
como te indique eso se hace con ajax desde javascript, tu ahi no estas usando ajax...
Aqui hay un ejemplo de como hacer lo que quieres: http://jquery-manual.blogspot.com.ar...ax-jquery.html si no deseas usar jquery, puedes hacer la peticion manualmente con xmlhttprequest pero en ambos casos, la solucion es por javascript no por php
Perfecto, he probado el script y funciona la consulta dinamica ajax, pero no logro abrir la ventana modal con los los datos del formulario. :(
funcion.js
Código PHP:
$(function(){
 $(
"#btn_enviar").click(function(){
 var 
url "consul_perso.php"// El script a dónde se realizará la petición.
    
$.ajax({
           
type"POST",
           
urlurl,
           
data: $("#formulario").serialize(), // Adjuntar los campos del formulario enviado.
           
success: function(data)
           {
           $(
"#respuesta").html(data); // Mostrar la respuestas del script PHP.
           
}
         });

    return 
false
 });
}); 
index.php
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">


<
head>



<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
meta charset="utf-8" />
<
meta name "viewport" content "width=device-width, maximum-scale = 1, minimum-scale=1" />
<
link rel="stylesheet" type="text/css" href="css/default.css" media="all" />
</
head>

<
body>

<
script type="text/javascript" src="funcion.js"></script>
 <div id="respuesta" class="modalmask">
    <div class="modalbox movedown">
        <a href="#close" title="Close" class="close">X</a>
 DATOS DEL FORM ( PERO NO ABRE LA VENTANA MODAL)
   </div>
</div> // entre estas dos etiquetas div se muestra la ventana modal
</body>
</html 
consul.perso.php
Código PHP:
       <?php
      
$resultado 
"";
/* Filtrar los datos */
$nombre addslashes(htmlspecialchars($_POST["nom"]));

/* Crear un Array. Simulando una consulta a una base de datos */
$array = array("ANTONIO""pedro""alberto");

/*Buscar en el array */
for ($x=0$x<count($array); $x++)
{
if (
$nombre == $array[$x])
{
$resultado "<p>El nombre ".$array[$x]." <b>SI</b> se encuentra en la base de datos</p>";
}
}
if(
$resultado == "")
{
echo 
"<p>El nombre ".$nombre." <b>NO</b> se encuentra en la base de datos</p>";
}
else
{
echo 
$resultado;
}
?>

Etiquetas: css, formulario, modal, ventana
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:13.