Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Problema PopUp/modal con formulario PHP

Estas en el tema de Problema PopUp/modal con formulario PHP en el foro de Frameworks JS en Foros del Web. Hola gente, por el escaso tiempo que tengo paso a contar brevemente. Tengo un link de ingreso como usuario a la página, que por medio ...
  #1 (permalink)  
Antiguo 30/11/2011, 22:09
Avatar de NnikoO  
Fecha de Ingreso: agosto-2008
Ubicación: Rosario
Mensajes: 245
Antigüedad: 15 años, 8 meses
Puntos: 0
Pregunta Problema PopUp/modal con formulario PHP

Hola gente, por el escaso tiempo que tengo paso a contar brevemente. Tengo un link de ingreso como usuario a la página, que por medio de Jquery se abre un pop up/modal en el que hay un formulario php que consta de usuario, contraseña e ingresar.

El codigo php funciona perfectamente, el usuario y la pass se comparan con los datos de la base para ver si existen, y de ser así el pop up se cierra, redireccionando hacia el index.php donde se puede apreciar la sesión iniciada.

El problema, es que si yo presiono ingresar sin cargar ningún dato, ni bien abro el pop up, este se cierra, sin tirar error de que los datos son inválidos, ni nada por el estilo.

Quisiera saber que solución se le puede dar a esto para que no se cierre el emergente, salvo que sea porque una sesión se inicio correctamente, o porque el usuario lo cerro deliberadamente. Seguramente la solución se da desde el código Jquery del pop up, alguna linea que controle el submit del formulario seguramente. Hasta ahora googleando no conseguí ninguna solución.
Espero que puedan ayudarme, muchas gracias de antemano.
Saludos.

<< niko >>
  #2 (permalink)  
Antiguo 30/11/2011, 23:20
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Problema PopUp/modal con formulario PHP

Hola:

Seguro que no se trata de una ventana modal, porque éstas (las verdaderas ventanas modales), no tienen esa característica (son alert, confirm y prompt)...

Lo que se hace en estos casos es o un bucle infinito hasta que se teclee algo correcto, o directamente validar y redirigir según el resultado... lo que pienso que debes buscar son temas sobre validaciones, que en estos foros hay muchos.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 30/11/2011, 23:40
Avatar de NnikoO  
Fecha de Ingreso: agosto-2008
Ubicación: Rosario
Mensajes: 245
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Problema PopUp/modal con formulario PHP

Se puede hacer implementando php?
  #4 (permalink)  
Antiguo 01/12/2011, 00:15
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Problema PopUp/modal con formulario PHP

Hola:

Los sistemas de usuarios y contraseñas suelen estar implementados con una base de datos, o en raros casos simplemente un fichero donde se guardan esas parejas de datos, y eso implica usar un lenguaje del servidor. Básicamente se tiene que tener ambos datos (para eso se puede hacer una validación en javascript), y con una petición chequear esos datos en el servidor, ya con php (o cualquier lenguaje que éste soporte).

Deberías indicarnos qué parte no tienes implementada, para saber cómo orientarte.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 01/12/2011, 00:53
Avatar de NnikoO  
Fecha de Ingreso: agosto-2008
Ubicación: Rosario
Mensajes: 245
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Problema PopUp/modal con formulario PHP

El php ya lo tengo todo, a eso me dedico principalmente.. La base de datos, con el registro, y el logueo con comprobacion, ya esta realizado. Lo que molesta, es el tema este de que se cierra la vertana emergente del formulario de ingreso. Si queres te muestro cada código.
  #6 (permalink)  
Antiguo 01/12/2011, 01:38
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Problema PopUp/modal con formulario PHP

Hola:

Si usas un formulario y un botón submit, para evitar que se envíe, si no pasa la validación debes enviar el valor false mediante el evento... en pocas líneas:

<form action="login.php" method="post" onsubmit="return validar(this)" >

... y con javascript:

function validar(f) {
return f.usuario.value != "" && f.password.value != "";
}

Normalmente suele ser algo más complejo, porque se pueden usar patrones y expresiones regulares, pero el ejemplo es para evitar que estén los campos vacíos.

Algo que también sería interesante saber, es si estás usando Ajax (yo particularmente no lo recomiendo)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 01/12/2011, 15:27
Avatar de NnikoO  
Fecha de Ingreso: agosto-2008
Ubicación: Rosario
Mensajes: 245
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Problema PopUp/modal con formulario PHP

Estoy usando php + MySql.
Te dejo los códigos:
El formulario del pop up para el ingreso, se llama con un include.

Código del Popup + el include:

Código HTML:
Ver original
  1. <script type="text/javascript">
  2. $(document).ready(function(){
  3.     $('a.poplight[href^=#]').click(function() {
  4.         var popID = $(this).attr('rel');
  5.         var popURL = $(this).attr('href');             
  6.         var query= popURL.split('?');
  7.         var dim= query[1].split('&');
  8.         var popWidth = dim[0].split('=')[1];
  9.         $('#' + popID).fadeIn().css({ 'width': Number( popWidth ) }).prepend('<a href="#" class="close"><img src="imagenes/cerrarpopup.jpg" class="btn_close" title="Cerrar" alt="Cerrar" /></a>');
  10.         var popMargTop = ($('#' + popID).height() + 80) / 2;
  11.         var popMargLeft = ($('#' + popID).width() + 80) / 2;
  12.         $('#' + popID).css({
  13.             'margin-top' : -popMargTop,
  14.             'margin-left' : -popMargLeft
  15.         });
  16.         $('body').append('<div id="fade"></div>');
  17.         $('#fade').css({'filter' : 'alpha(opacity=80)'}).fadeIn();
  18.        
  19.         return false;
  20.     });
  21.     $('a.close, #fade').live('click', function() {
  22.         $('#fade , .popup_block').fadeOut(function() {
  23.             $('#fade, a.close').remove();  
  24.     });    
  25.         return false;
  26.     });
  27. });
  28.  
  29.  
  30. <li class="menu_ingresar"><a href="#?w=260" rel="registrarse" class="poplight" title="Ingresar - Registrarse">Ingresar</a></li>
  31.  
  32.  
  33. <div id="registrarse" class="popup_block">
  34.             <?php include("ingresar.php"); ?>
  35.         </div>

Código php:

Código PHP:
Ver original
  1. <?
  2. if ($_SESSION["validar"] == "autorizado")
  3. {
  4.     $msjsesion = "Sesion iniciada.";
  5. }
  6. else
  7. {
  8.     if (isset($_POST['ingresar']))
  9.       {
  10.         $user = $_POST["user"];
  11.    
  12.         include("admin/config.php");
  13.        
  14.         $link = mysql_connect($servidor, $usuario, $pass);     
  15.            
  16.         $bd = mysql_select_db($basedato, $link);
  17.        
  18.         $sql = "SELECT * FROM clientes WHERE mail='" . $_POST['user'] . "'
  19.                         AND pass='" . $_POST['pass'] . "'";
  20.        
  21.         $resultado = mysql_query($sql, $link);
  22.        
  23.       if(mysql_num_rows($resultado)!=0)
  24.        {
  25.          session_start();
  26.          $_SESSION["validar"]= "autorizado";
  27.          $_SESSION["usuario"] = $user;
  28.          header ("Location: index.php");
  29.        }
  30.         else
  31.        {
  32.         $msjingresar = "No!";
  33.         }  
  34.    
  35.        mysql_free_result($resultado);
  36.        mysql_close($link);
  37.      }
  38. }
  39. ?>
  40.  
  41. <div id="identificar">
  42.     <h1> <? if(!isset($msjsesion)){ ?>Identificarme: <? echo $msjingresar; ?></h1>
  43.    
  44.     <form action="" method="post" name="login">
  45.         <table width="250" border="0" cellpadding="5" style="margin:5px 0 0 0;">
  46.             <tr>
  47.                 <td><label for="usuario">E-Mail:</label></td>
  48.                 <td><input name="user" type="text" style="width:150px;" value="<? $_POST["user"]; ?>" /></td>
  49.             </tr>
  50.             <tr>
  51.                 <td><label for="pass">Contraseña:</label></td>
  52.                 <td><input name="pass" type="password" style="width:150px;" value="<? $_POST["pass"]; ?>" /></td>
  53.             </tr>
  54.             <tr>
  55.                 <td><input name="ingresar" type="submit" value="Ingresar" /></td>
  56.                 <td align="right"><p><a href="registro.php" title="Registrarse">Nueva Cuenta</a></p></td>
  57.             </tr>
  58.         </table>
  59.     </form>
  60.      <? }else{
  61.                    
  62.                     echo $msjsesion;
  63.                     }
  64.                 ?>
  65. </div>

Etiquetas: formulario, jquery, modal, php, popup
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 00:26.