Foros del Web » Programando para Internet » Javascript »

Actualizar un campo segun el select

Estas en el tema de Actualizar un campo segun el select en el foro de Javascript en Foros del Web. Hola a todos; necesitaria saber como actualizar un campo segun el valor de un selec, lo que quiero hacer es que cuando marque un valor ...
  #1 (permalink)  
Antiguo 28/09/2009, 17:27
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 3 meses
Puntos: 5
Actualizar un campo segun el select

Hola a todos;
necesitaria saber como actualizar un campo segun el valor de un selec, lo que quiero hacer es que cuando marque un valor de un selec que contiene 17 valores automaticamente me introcuzca un valor en un campo. Los campos, tanto del select como del campo estan en la misma tabla y en el mismo registro.
Osea que si un registro es...
Usuario: Miguel nivel:2 pues que cuando marque Miguel en el select me introduzca en un campo el 2.
Un saludo
  #2 (permalink)  
Antiguo 28/09/2009, 18:13
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Actualizar un campo segun el select

utiliza el evento onchange en el <select>. en el evento, tienes que tomar la referencia del campo que queires agregar el valor. lo que te quedaria es determinar cual es el valor a agregar. eso depende como lo tengas: cada option tiene el valor, o si tienes un array con todos los valores que corresponde a cada option.
Código:
// campo es la referencia al campo, supongo de tipo text;
// valor es el valor a asignarle. si el option contiene el valor, puedes reemplazar valor por this.value;
<select onchange="campo.value = valor">...</select>
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 28/09/2009, 18:14
Avatar de kuriel  
Fecha de Ingreso: febrero-2009
Mensajes: 240
Antigüedad: 15 años, 2 meses
Puntos: 4
Respuesta: Actualizar un campo segun el select

A ver si este ejemplo te sirve:

Cita:
<form>
<input type="text" name="nombre" value="0" />
<select onChange="this.form.nombre.value = this.value;">
<option value="0">0</option>
<option value="1">1</option>
</select>
</form>
__________________
Si todas las URL's que tienes o visitas te parecen largas, visita www.korto.tk - También protege de rastros y con contraseñas tus páginas o URL's.
  #4 (permalink)  
Antiguo 28/09/2009, 18:29
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 3 meses
Puntos: 5
Respuesta: Actualizar un campo segun el select

Este es el formulario que tengo
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>
        [COLOR="Red"]<select name="usu" id="usu">[/COLOR]
          <?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>
        [COLOR="YellowGreen"]<input name="nivel" type="text" id="nivel" value="<?php echo $row_usuar['nivel']; ?>" size="2" />[/COLOR]
        </label>
      </h3></td>
    </tr>
    <tr>
      <td height="29">&nbsp;</td>
      <td><h3 class="Estilo1">Contraseña:</h3></td>
      <td><h3 class="Estilo1">
        <input name="con" type="password" class="tex_16_titulo" id="con" size="40" />
      </h3></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>
      </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>
El marcado en rojo (usu) me coge los valores, luego el marcado en verde es donde deberia de salir el valor segun el select.
Por ejemplo:
En el select me lista 15 nombre de la tabla usuarios, esa tabla tiene tambien el campo NIVEL y el campo SALON.
La tabla estaria asi:
usuario:Miguel Password: xxxxxx Nivel:1 Salon: 3
usuario:pepe Password: xxxxxx Nivel:2 Salon: 2
usuario:Manolo Password: xxxxxx Nivel:1 Salon: 3
usuario:Pepa Password: xxxxxx Nivel:3 Salon: 1

Pues me gustaria que al seleccionar el marcado en rojo (usu) me pusiera el NIvel en el campo Nivel, y el salon en el campo salon del usuario que se ha seleccionado.
Gracias por vuestra ayuda y si me podeis ayudar a colocar el codigo, mejor que mejor.
Un saludo
  #5 (permalink)  
Antiguo 29/09/2009, 13:29
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Actualizar un campo segun el select

Hola

Primero decirte que la manera que has usado no es la correcta. No puedes dejar mensajes de visitas ni mensajes privados para pedir que se te ayude. Una vez dicho esto, cambia esto

Cita:
<select onChange="nivel.value=<?php echo $row_usuar['nivel']; ?>" name="usu" id="usu">
<?php
do {
?><option value="<?php echo $row_usuar['entrada']?>"><?php echo $row_usuar['empleado']?></option>
por esto otro

Cita:
<select onChange="document.getElementById("nivel").value=t his.options[this.selectedIndex].value" name="usu" id="usu">
<?php
do {
?><option value="<?php echo $row_usuar['nivel']?>"><?php echo $row_usuar['empleado']?></option>
<?php
<?php
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #6 (permalink)  
Antiguo 29/09/2009, 13:47
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 3 meses
Puntos: 5
Respuesta: Actualizar un campo segun el select

Pues no me funciona. no me sale ningun dato en el campo NIVEL.
  #7 (permalink)  
Antiguo 29/09/2009, 14:01
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Actualizar un campo segun el select

Hola

Cambia las comillas dobles por simples

<select onChange="document.getElementById('nivel').value=this.options[this.selectedIndex].value" name="usu" id="usu">

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #8 (permalink)  
Antiguo 30/09/2009, 03:18
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 3 meses
Puntos: 5
Respuesta: Actualizar un campo segun el select

Ahora me funciona, pero no me coge el valor del combox que necesito para hacer el login.
Lo que intento hacer es un login, el combox tiene el usuario y el nivel contiene donde debe ir redireccionado.
Si no cojo los datos del combox no me valida la entrada.
  #9 (permalink)  
Antiguo 30/09/2009, 05:32
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Actualizar un campo segun el select

Hola

Vemos el valor de los options tendrá (nivel y entrada) y tu lo que necesitas es insertar en el text solo la entrada. ¿Es así?

Prueba este ejemplo

Código javascript:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta name="http-equiv" content="Content-type: text/html; charset=UTF-8"/>
  5. </head>
  6. <body>
  7.         <form >
  8.  <select onChange="document.getElementById('nivel').value = this.options[this.selectedIndex].value.split(',')[0]">
  9.             <option value="1,A"> 1</option>
  10.             <option value="2,B"> 2</option>
  11.             <option value="3,C"> 3</option>
  12.             <option value="4,D"> 4</option>
  13.             <option value="5,E"> 5</option>
  14.          </select>
  15.              
  16.            <input type="text" id="nivel" name="nivel">
  17.            
  18.        
  19. </body>
  20. </html>

Fijate que solo he cambiado

Cita:
<select onChange="document.getElementById('nivel').value=t his.options[this.selectedIndex].value">
por

Cita:
<select onChange="document.getElementById('nivel').value=t his.options[this.selectedIndex].value.split(',')[0]">
Y a los options le le añadido los dos valores

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #10 (permalink)  
Antiguo 30/09/2009, 07:26
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 3 meses
Puntos: 5
Respuesta: Actualizar un campo segun el select

No me aclaro, ya que yo los valores del combox los cojo de una base de datos.
Te explico..
en la base de datos tengo unos 25 usuarios que capturo el nombre en el combox, como VALUE capturo otro campo que se llama "entrada" que necesito para que se loguee, luego necesito otro dato el NIVEL para que me redireccione segun el NIVEL.

Asi esta la tabla para que te hagas una idea.
Nombre: Miguel Angel, empleado: mangel, contraseña: xxxxx, nivel:1
Para el login necesito los campos empleado y contraseña, y para redireccioanar segun el nivel, necesito saber el nivel.
En el elejmplo que me diste, me enviaba el nivel al campo de texto, pero me quitaba el propio.
espero que esto te aclare un poco lo que necesito, ya que no soy muy bueno explicandome.
Muchas gracias por tu ayuda
  #11 (permalink)  
Antiguo 30/09/2009, 07:27
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 3 meses
Puntos: 5
Respuesta: Actualizar un campo segun el select

Se me olvidaba, necesito que el combox mantenga su valor, pero que a la vez me envie el NIVEL al campo text "nivel"

Un saludo
  #12 (permalink)  
Antiguo 30/09/2009, 07:45
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Actualizar un campo segun el select

Hola

Quieres que los valores del combo sean los valores del campo entrada. Arreglo a la opción que se selecciones, en el campo nivel se imprima el nivel que tiene el usuario seleccionado. Bien hasta aquí esta hecho, con el ejemplo que te di. Ahora lo que queda es del lado del servidor. Cuando recibas la variable usu, haces un split y operas o bien con el valor del primer subindice o del segundo

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #13 (permalink)  
Antiguo 30/09/2009, 08:05
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 3 meses
Puntos: 5
Respuesta: Actualizar un campo segun el select

No se como colocar lo que me dices ni entiendo como hacerlo, Siento que sea tan torpe.
a ver si con esto aclaro un poco mas.
Código PHP:
<?php echo $row_usuar['nivel']?>
Aqui me coge el valor del nivel.
Código PHP:
<?php echo $row_usuar['entrada']?>
aqui me coge el valor del usuario que necesito para la entrada y es el VALUE del combox.
Código PHP:
<?php echo $row_usuar['empleado']?>
y de aqui me coge el nombre y lo coloco en la etiqueta del combox.

y este es el combox
Código PHP:
  <select  onChange="document.getElementById('nivel').value=this.options[this.selectedIndex].value.split(',')[0]"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>
y el campo de texto donde debe de ir el nivel una vez se seleccione el empleado
Código PHP:
<input type="text" name="nivel" id="nivel" /> 
si no te es mucha molestia, me podias colocar el codigo que me pones?.
De verdad que lo siento mucho, pero apenas entiendo lo que me pones ni se como colocarlo.
Un saludo y muchas gracias
  #14 (permalink)  
Antiguo 30/09/2009, 12:39
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Actualizar un campo segun el select

Hola

Nada tranquilo, para eso estamos

Bien, el form quedaría así

Cita:
<select onChange="document.getElementById('nivel').value=this.option s[this.selectedIndex].value.split(',')[1]" name="usu" id="usu">
<?php
do {
?><option value="<?php echo $row_usuar['entrada']?>,<?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($usuar, 0);
$row_usuar = mysql_fetch_assoc($usuar);
}
?>
</select>
Ahora en pagina.php, cuando recojas los valores del form, al valor del select le haces un Split y de esa manera obtendrás o bien el valor de entrada o de nivel, el que necesites, para que la aplicación o lo que sea funcione

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #15 (permalink)  
Antiguo 30/09/2009, 18:34
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 3 meses
Puntos: 5
Respuesta: Actualizar un campo segun el select

Pero el caso es que necesito los 2 valores.
a ver si puedo explicarme bien...
valor "entrada" lo necesito para el usuario.
valor de "nivel" lo necesito para redireccionar segun el nivel
Como ves necesito obtener los 2 valores, con lo que tu me pones solo consigo 1

Un ejemplo.
Usu = Miguel
nivel =1
contraseña=*****

cuando pulso el boton "enviar" del form cojo los valores por $_POST de "usu", "nivel" y "contraseña"
Si miguel tiene el nivel 1 lo envio a una pagina, si tiene el valor 2 a otra.
Gracias por tu ayuda
  #16 (permalink)  
Antiguo 01/10/2009, 04:40
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Actualizar un campo segun el select

Hola

Código javascript:
Ver original
  1. <select onChange="document.getElementById('nivel').value=this.option s[this.selectedIndex].value.split(',')[1]" name="usu" id="usu">
  2. <?php
  3. do {
  4. ?><option value="<?php echo $row_usuar['entrada']?>,<?php echo $row_usuar['nivel']?>"> <?php echo $row_usuar['empleado']?></option>
  5.  
  6. <?php
  7. } while ($row_usuar = mysql_fetch_assoc($usuar));
  8. $rows = mysql_num_rows($usuar);
  9. if($rows > 0) {
  10. mysql_data_seek($usuar, 0);
  11. $row_usuar = mysql_fetch_assoc($usuar);
  12. }
  13. ?>
  14. </select>
  15.  
  16. <input name="nivel" type="text" id="nivel" value="" size="2" />
  17. <input name="con" type="password" class="tex_16_titulo" id="con" size="40" />


Tal y como está el form, envías esto

Cita:
Del campo usu envías -----> entrada, nivel (por ejemplo: 16,2)
Del campo nivel envías ---> nivel (2)
Del campo con envías -----> contraseña (xxxx)
¿Qué valor es el que te falta?

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #17 (permalink)  
Antiguo 01/10/2009, 07:51
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 3 meses
Puntos: 5
Respuesta: Actualizar un campo segun el select

No es asi.
Para que el usuario se pueda loguear necesito que el combox solo envie "ENTRADA" nada mas, ya que es el campo que compara con la base de datos, el campo contraseña tambien la necesito, pero son los usuarios quien la escriben (este campo no hace falta tocarlo) pero para que me redireccione a la pagina segun el usuario que esta marcado necesito enviar el valor del campo "NIVEL" solo. Osea que necesito que los 2 valores que necesito del COMBOX se envien independientemente.
Muchas gracias por el interes que has tomado
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 08:32.