Ver Mensaje Individual
  #3 (permalink)  
Antiguo 26/07/2010, 11:51
Avatar de juamd
juamd
 
Fecha de Ingreso: marzo-2009
Ubicación: Bogotá
Mensajes: 285
Antigüedad: 15 años, 10 meses
Puntos: 8
Respuesta: Recargar aplicacion.

Que tal !!!

La aplicación funciona así:

Una de las opciones de la aplicacion tiene el evento onclick para abrir el popup

Código:
"<li><a href=\"\" onclick=\"return abrirPopupLogin()\" >Login </a></li>";

El popup se abre con determinadas caracteristicas dependiendo del navegador:

Código:
function abrirPopupLogin() {

    var width  = 300;
    var height = 300;
    var left   = (screen.width  - width)/2;
    var top    = (screen.height - height)/2;
    var params = 'width='+width+', height='+height;
    params += ', top='+top+', left='+left;
    params += ', directories=no';
    params += ', location=no';
    params += ', menubar=no';
    params += ', resizable=no';
    params += ', scrollbars=no';
    params += ', status=no';
    params += ', toolbar=no';
    params += ', modal=1';

    nombreNavegador = navigator.appName;

    if(nombreNavegador.indexOf('Microsoft') == -1){
        window.open('login.html','name',params);
    }else{
        window.showModalDialog("login.html","name","center:yes;dialogWidth:255px;dialogHeight:250px;");
    }

    return false;
}
Este es el formulario del popup, que en el evento onsubmit llama la funcion
procesar login:

Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript" src="js/procesarLogin.js"></script>
  </head>
  <body>
      <form action="procesarLogin.jsp" onsubmit="return procesarLogin()" >
          Usuario: <input type="text" size="10" id="usuario"/>
          Password <input type="password" size="10" id="password"/>
          <input type="submit" value="Enviar" />
      </form>
  </body> 
</html>

La funcion procesaro login:
Código:
function cargarObjetoAjax()
{
    jQuery.ajaxSetup({
        'xhr':function(){
            return window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
        }
    });
}

function procesarLogin()
{
    cargarObjetoAjax();

    var cedula = $("#usuario").attr("value");
    var password = $("#password").attr("value");

    jQuery.ajax({
        type: "POST",
        data: "usuario="+cedula+"&password="+password,
        dataType: "html",
        contentType: "application/x-www-form-urlencoded",
        url:"procesarLogin.jsp",
        success:mensaje,
        error:problemas
    });

    return false;
}

function mensaje(respuesta)
{
    var accion = respuesta.toString();

    if(accion.indexOf("error") > -1 ){
        alert("El usuario no existe en la base de datos");
    }else{
        window.close();
        
    }
}

function problemas(XMLHttpRequest, textStatus, errorThrown)
{
    alert(XMLHttpRequest);
    alert(textStatus);
    alert(errorThrown);
}
En este ultimo fragmento de codigo tengo la funcion mensaje si el usuario no existe muestra un alert y no hace nada mas pero si el usuario existe necesito cerrar el popup (lo cual hago con window.close() ) pero tambien necesito recargar la aplicacion para que haga efecto el login del usuario y se carguen las demás opciones, como puedo recargar la pagina ?

Saludos y gracias.