Foros del Web » Programando para Internet » Javascript »

Actualizar campo segun el select

Estas en el tema de Actualizar campo segun el select en el foro de Javascript en Foros del Web. Hola a todos; Hace tiempo expuse una duda que aun no he podido resolver y que vuelvo a exponer con mas detalles. Tengo un formulario ...
  #1 (permalink)  
Antiguo 09/10/2009, 14:12
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 3 meses
Puntos: 5
Actualizar campo segun el select

Hola a todos;
Hace tiempo expuse una duda que aun no he podido resolver y que vuelvo a exponer con mas detalles.

Tengo un formulario donde la gente se loguea. en vez de ser un campo texto es un COMBOX y lo que hace es que la gente selecciona su nombre y envia la variable de su username mediante el value, hasta aqui todo va bien por que la gente se loguea bien y accede con su contraseña.
Para el siguiente paso necesitaria que segun el usuario que este seleccionado en el COMBOX lo enviara a una u otra pagina. POr ejemplo si el usuario es MANOLO pues que lo enviara a usuario.php y si el usuario es PEPE pues que lo enviara a administrador.php.
Para que esto ocurra necesito enviar otra variable, que es el NIVEL, pero no se como obtener desde un mismo combox 2 campos, uno seria el USERNAME y otro NIVEL.
En la base de datos tengo una tabla con los campo usuario, password, nivel.
Alguien puede decirme como conseguir esto?

Un saludo
  #2 (permalink)  
Antiguo 09/10/2009, 14:40
Avatar de oswalgogra  
Fecha de Ingreso: septiembre-2007
Ubicación: En algún lugar del territorio Colombiano
Mensajes: 140
Antigüedad: 16 años, 7 meses
Puntos: 5
Respuesta: Actualizar campo segun el select

Hola,

Qué pasaría si cuando vas a mostrar la lista imprimes en el atributo 'value' del ítem del combobox los dos valores concatenados?

Y luego en una función se analiza ese dato y dependiendo del nivel le cambias el valor al 'action' del formulario?

Por ejemplo:
<option value="PEPE_NIVEL1">PEPE</option>
<option value="MARIA_NIVEL2">MARIA</option>
...
Aquí separarías el valor por un "_".

La verdad a mí no me gusta esa solución que te he dado , ya que como mucha gente sabe hay muchas extensiones de firefox (y depronto de otros browsers) con los cuales podemos cambiar los datos de un formulario y enviar lo que queramos.

Yo te recomendaría que siempre enviaras las peticiones a un mismo script, pero analizas los parámetros que recibes y los confrontes con la db y así puedes despachar la petición hacia la página que le corresponda .

Éxitos, hasta pronto!
__________________
Oswaldo: El que gobierna con el poder de Dios.
  #3 (permalink)  
Antiguo 09/10/2009, 15:03
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 3 meses
Puntos: 5
Respuesta: Actualizar campo segun el select

y como lo harias tu? no se apenas nada de java y necesito esto para que la gente se loguee y segun el nivel que tenga vaya a uno u otro sitio. Ahora tengo 3 niveles que estan definidos.
  #4 (permalink)  
Antiguo 09/10/2009, 16:33
Avatar de oswalgogra  
Fecha de Ingreso: septiembre-2007
Ubicación: En algún lugar del territorio Colombiano
Mensajes: 140
Antigüedad: 16 años, 7 meses
Puntos: 5
Información Respuesta: Actualizar campo segun el select

Bueno,
Yo enviaría los datos siempre contra el mismo script.

En ese script recibo el usuario y el nivel, con esos datos hago las consultas necesarias en la base de datos para comprobar a qué página debo redireccionarlos.

Puedes hacer todo en el mismo script o tener una clase que ejecute distintos métodos para despachar al usuario hacia donde le corresponde.

Un ejemplo pequeño y sencillo sin usar la clase:

scriptEntrada.php
Código PHP:

$usuario 
$_REQUEST['usuario'];
$nivel $_REQUEST['nivel'];

$nivelCorrespondiente funcionSQLQueObtieneNivelUsandoUsuario($usuario);

switch(
$nivelCorrespondiente){
    case 
'1':
                
functionQueHaceHeaderLocation('paginaUsuariosNivel1.php');
                break;
    case 
'2':
                
functionQueHaceHeaderLocation('paginaUsuariosNivel2.php');
                break;
    default: 
                
functionQueHaceHeaderLocation('paginaDefecto.php');
                break;

Ese sería un ejemplo muy sencillo para un sistema de despacho de peticiones, lo importante es que el usuario digite los datos necesarios para hacer la verificación correctamente.

Espero que te sea de ayuda y si tienes alguna duda o algo, estaré pendiente.

Éxitos, hasta pronto!


...

Ah, una pregunta:
Cuando se selecciona el usuario y su nivel, ya la persona se ha logueado en el sistema?
__________________
Oswaldo: El que gobierna con el poder de Dios.

Última edición por oswalgogra; 09/10/2009 a las 16:36 Razón: Una consulta...
  #5 (permalink)  
Antiguo 10/10/2009, 12:53
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 3 meses
Puntos: 5
Respuesta: Actualizar campo segun el select

Lo que me dices me suena un poco a chino, el java se me da fatal, te coloco el codigo que tengo a ver si asi me puedes aclarar como hacerlo.

este es el codigo que me valida el usuario y me lo redirecciona.
Código PHP:
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
  
session_start();
}

$loginFormAction $_SERVER['PHP_SELF'];


if (isset(
$_POST['usu'])) {
  
$loginUsername=$_POST['usu'];
  
$password=sha1 ($_POST['con']);
  
$sesalon=$_POST['sesionsalon'];
  
$nivel=$_POST['nivel'];
  
$MM_fldUserAuthorization "";
  
$MM_redirectLoginSuccess1 "gestion/usuario.php";
  
$MM_redirectLoginSuccess2 "administracion/tecnico_incidencias.php";
  
$MM_redirectLoginSuccess3 "administracion/administrador.php";
  
$MM_redirectLoginFailed "index_error.php";
  
$MM_redirecttoReferrer false;
  
mysql_select_db($database_deume$deume);
  
  
$LoginRS__query=sprintf("SELECT entrada, contrasena FROM empleados WHERE entrada=%s AND contrasena=%s",
    
GetSQLValueString($loginUsername"text"), GetSQLValueString($password"text")); 
   
  
$LoginRS mysql_query($LoginRS__query$deume) or die(mysql_error());
  
$loginFoundUser mysql_num_rows($LoginRS);
  if (
$loginFoundUser) {
     
$loginStrGroup "";
    
    
//declare two session variables and assign them
    
$_SESSION['MM_Username'] = $loginUsername;
    
$_SESSION['MM_UserGroup'] = $loginStrGroup;     
    
$_SESSION['MM_SesionSalon'] = $sesalon;   
    
$_SESSION['MM_Nivel'] = $nivel;  

    if ((
$_SESSION['MM_Nivel']) == 1) {
      
header("Location: " $MM_redirectLoginSuccess1 );    
    }
     if ((
$_SESSION['MM_Nivel']) == 2) {
      
header("Location: " $MM_redirectLoginSuccess2 );
    }
     if ((
$_SESSION['MM_Nivel']) == 3) {
      
header("Location: " $MM_redirectLoginSuccess3 );    
    }
   
  }
  else {
    
header("Location: "$MM_redirectLoginFailed );
  }
}
?>
y este es el form
Código PHP:
<form ACTION="<?php echo $loginFormAction?>" method="POST" name="acceso" class="Estilo1" id="acceso">
  <table width="550" border="0" align="center">
    <tr>
      <td width="19">&nbsp;</td>
      <td width="218"><h3 class="Estilo1">Usuario:</h3></td>
      <td width="299"><h3 class="Estilo1">
        <label>
       <select  name="usu" id="usu">
         <?php
do {  
?><option value="<?php echo $row_usuar['entrada']?>"><?php echo $row_usuar['empleado']?></option>
         <?php
} while ($row_usuar mysql_fetch_assoc($usuar));
  
$rows mysql_num_rows($usuar);
  if(
$rows 0) {
      
mysql_data_seek($usuar0);
      
$row_usuar mysql_fetch_assoc($usuar);
  }
?>
        </select>
        </label>
        <label></label>
        <input type="hidden" name="nivel" id="nivel" />
      </h3></td>
    </tr>
    <tr>
      <td height="29">&nbsp;</td>
      <td><h3 class="Estilo1">Repite Usuario:</h3></td>
      <td><h3 class="Estilo1">
        <label>
        <select onChange="document.getElementById('nivel').value=this.options[this.selectedIndex].value" name="repite" id="repite">
          <?php
do {  
?>
          <option value="<?php echo $row_usuar['nivel']?>"><?php echo $row_usuar['empleado']?></option>
          <?php
} while ($row_usuar mysql_fetch_assoc($usuar));
  
$rows mysql_num_rows($usuar);
  if(
$rows 0) {
      
mysql_data_seek($usuar0);
      
$row_usuar mysql_fetch_assoc($usuar);
  }
?>
        </select>
        </label>
      </h3></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td class="Estilo1">Contraseña:</td>
      <td><input name="con" type="password" class="tex_16_titulo" id="con" size="40" /></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td class="Estilo1">Salón</td>
      <td><label>
        <select name="sesionsalon" class="Estilo1" id="sesionsalon">
          <?php
do {  
?><option value="<?php echo $row_lsalon['id_salon']?>"><?php echo $row_lsalon['salon']?></option>
          <?php
} while ($row_lsalon mysql_fetch_assoc($lsalon));
  
$rows mysql_num_rows($lsalon);
  if(
$rows 0) {
      
mysql_data_seek($lsalon0);
      
$row_lsalon mysql_fetch_assoc($lsalon);
  }
?>
        </select>
        <span class="forms Estilo4">Selecciona el SALÓN</span></label></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><h3>&nbsp;</h3></td>
      <td><h3>
        <label>
        <input name="button" type="submit" class="boton" id="button" value="Acceder al sistema" />
        </label>
      </h3></td>
    </tr>
  </table>
</form>
En el form tengo 2 combox, el primero envia el username y el segundo el nivel.
no se si lo ve sclaro, pero te resuelvo cuanquier duda
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 19:31.