Foros del Web » Programando para Internet » Javascript »

No funciona el confirm de javascritp

Estas en el tema de No funciona el confirm de javascritp en el foro de Javascript en Foros del Web. Hola amigos, he leido ya algunos foros sobre este tema pero ninguno que me ayude realmente, por eso acudo nuevamente a uds. la situacion es ...
  #1 (permalink)  
Antiguo 19/05/2012, 08:52
Avatar de guillemat  
Fecha de Ingreso: abril-2012
Mensajes: 7
Antigüedad: 12 años
Puntos: 0
Pregunta No funciona el confirm de javascritp

Hola amigos, he leido ya algunos foros sobre este tema pero ninguno que me ayude realmente, por eso acudo nuevamente a uds. la situacion es esta: tengo una pagina php que inhabilita un usuario y se redirecciona a ella misma a traves del $_SERVER[PHP_SELF] y tengo ademas una funcion js que me hace el confirm, si acepto todo va viento en popa pero si cancelo el flujo sigue como si hubiese aceptado (parece dimension desconocida). Les anexo el codigo:

php:

Código PHP:
<?php
if(!isset($_POST['Inhabilitar'])) 
{
echo 
"<form id='form1' name='form1' method='post' action='$_SERVER[PHP_SELF]'>";
  echo 
"<label for='cedula'>"
  echo 
"<div align='center'>Ingrese la cédula del usuario:";
 echo 
"</div>
  <div align='center'>
    <p>
      <input type='text' name='cedula' id='cedula'  required='required' />
      <select name='tipousuario' id='tipousuario'  required='required'><option value=''>Seleccione un tipo de usuario</option><option value='Asesor'>Asesor</option><option value='Estudiante'>Estudiante</option>
      </select>
      <input type='submit' name='Inhabilitar' id='Inhabilitar' value='Inhabilitar'  onclick='confirmar()' />
    </p>
  </div>
</form>
<p align='center'>&nbsp;</p>"
;
}
else 
{
    
$user=$_POST['cedula'];
    if (
$_POST['tipousuario']=='Asesor')
    {
        
$ase=Conectar::identificarAse($_POST['cedula']);
        if (empty(
$ase))
        {
            echo 
"<script type='text/javascript' language='javascript'>
            alert('Esta cédula no pertenece a ningun asesor de la base de datos');
            window.location='inhabilita_usuario.php';
            </script>"
;
        }
        else
        {
        for (
$i=0;$i<count($ase);$i++)
        {
            
$nombre=$ase[$i]['nombre'];
            
$email=$ase[$i]['email'];
            
//echo $nombre." ".$email;
        
}
        }
    }
        if (
$_POST['tipousuario']=='Estudiante')
    {
        
$est=Conectar::identificarEst($_POST['cedula']);
        if (empty(
$est))
        {
            echo 
"<script type='text/javascript' language='javascript'>
            alert('Esta cédula no pertenece a ningun estudiante de la base de datos');
    window.location='inhabilita_usuario.php';
    </script>"
;
        }
        else
        {
        for (
$i=0;$i<count($est);$i++)
        {
            
$nombre=$est[$i]['nombre'];
            
$email=$est[$i]['email'];
        }
        }
    }
    



$usuario=new usuario($user,$nombre,$email);
$usuario->inhabilitaUsuario($user);
echo 
"<script type='text/javascript' language='javascript'>
            alert('El usuario fue inactivado');
    window.location='entrada_administracion.php';
    </script>"
;


}


?>
y el Javascritp:

Código PHP:
function confirmar() {
    var 
r=confirm('Inhabilitar usuario recuerde que con esta accion se le restringe la entrada al sistema.');
if (
r==false){
    
alert('El usuario continua activo');
    return 
false;
    
window.location='entrada_administracion.php';
    }
    else {
    
window.location='inhabilita_usuario.php';    
    
    }

informacion adicional: la pagina donde estoy es inhabilita_usuario.php
  #2 (permalink)  
Antiguo 19/05/2012, 11:35
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: No funciona el confirm de javascritp

Hola:

Lo que veo mal (aparte de lagunas cosas mejorables de sintaxis), es poner instrucciones después de una instrucción return... todo lo que hay después se ignora.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 19/05/2012, 13:52
Avatar de guillemat  
Fecha de Ingreso: abril-2012
Mensajes: 7
Antigüedad: 12 años
Puntos: 0
Respuesta: No funciona el confirm de javascritp

Aun cambiando las instrucciones return por la instruccion window.location en el caso del false me sigue direccionando como si el flujo normal fuera aceptar. La cuestion es que el alert en caso de cancelar el confirm funciona bien pero el window.location no, por que?
  #4 (permalink)  
Antiguo 19/05/2012, 20:24
 
Fecha de Ingreso: mayo-2012
Mensajes: 36
Antigüedad: 12 años
Puntos: 12
Respuesta: No funciona el confirm de javascritp

Haz lo siguiente.

En tu codigo HTML tienes ese input que llama a la funcion confirmar()
Código HTML:
Ver original
  1. ....
  2. ...
  3. <input type='submit' name='Inhabilitar' id='Inhabilitar' value='Inhabilitar'  onclick='confirmar()' />
Cambialo de la siguiente forma
Código HTML:
Ver original
  1. ....
  2. ...
  3. <input type='submit' name='Inhabilitar' id='Inhabilitar' value='Inhabilitar'  onclick='return confirmar()' />

Luego en el Javascript

Código Javascript:
Ver original
  1. function confirmar() {
  2.    if ( confirm('Inhabilitar usuario recuerde que con esta accion se le restringe la entrada al sistema.') ) {
  3.     window.location='inhabilita_usuario.php';  
  4. }
  5.   return false;
  6. }
__________________
Aprende a cocinar con Anita y descubre mas de 1000 Recetas de Cocina

Etiquetas: confirm, funcion, input, js, php
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 12:31.