Foros del Web » Programando para Internet » Javascript »

problema con varios campos de seleccion...

Estas en el tema de problema con varios campos de seleccion... en el foro de Javascript en Foros del Web. Saludos a todos los maestros, les presento el problema: campo tarea---campo tiempo(hrs)---campo usuario almacen-------------2-------------- distribucion----------4-------------- tengo unas tareas q realizar y quiero asignarselas a mis ...
  #1 (permalink)  
Antiguo 19/10/2006, 11:01
 
Fecha de Ingreso: abril-2005
Mensajes: 124
Antigüedad: 19 años, 1 mes
Puntos: 0
Pregunta problema con varios campos de seleccion...

Saludos a todos los maestros, les presento el problema:

campo tarea---campo tiempo(hrs)---campo usuario
almacen-------------2--------------
distribucion----------4--------------

tengo unas tareas q realizar y quiero asignarselas a mis diferentes usuarios o trabajadores, para esto consulto la base de tareas y vacio los campos en una tabla como la anterior. Para cada registro q vacio, el ultimo campo donde dice usuario creo un campo de seleccion el cual lleno con los usuarios que existen en mi base de usuarios.

<SELECT NAME="usuario" SIZE="1" onchange="actualiza()">
<option selected value="x">Usuario</option>
While ($registro_usuar=mysql_fetch_assoc($usuar)) {
<option value=\"".$registro_usuar['usuario']."\">".$registro_usuar['usuario']."</option>;
</SELECT>


como pueden ver solo ocupo un campo de seleccion(usuario), el cual se crea conforme a usuarios exista, el valor es igual en el texto que en value. El objetivo es seleccionar una tarea y asignarle un usuario, tomar otra y asignarle otro usuario. cada vez que selecione un usuario quiero almacenar el nuevo valor seleccionado y guardarla en una campo de texto. para esto hice la funcion de onchange=(actualiza).
function actualiza() {
i=document.principal.usuario12.selectedIndex;
cadena=document.principal.usuario12.options[i].text;
document.principal.regresa.value=i;}
esta funciona muy bien cuando solo existe un usuario, porque solo aparece un campo de seleccion, cuando es mas de uno se pierde y me manda que usuario12.options es nulo creen que se deba a que creo tantos campos de seleccion como registros encuentre y todos con el mismo nombre.

mi pregunta como puedo hacer para que esto funcione, tomando en cuenta que el numero de tareas no es fijo y por eso no se cuantos campos de seleccion deba crear? O tiene otra idea de como hacer esto mas simple....

de antemano gracias.
  #2 (permalink)  
Antiguo 19/10/2006, 11:52
 
Fecha de Ingreso: octubre-2003
Ubicación: Cerca de una wifi o 3G
Mensajes: 328
Antigüedad: 20 años, 6 meses
Puntos: 4
Cita:
Iniciado por jgrc Ver Mensaje
Saludos a todos los maestros, les presento el problema:

campo tarea---campo tiempo(hrs)---campo usuario
almacen-------------2--------------
distribucion----------4--------------

tengo unas tareas q realizar y quiero asignarselas a mis diferentes usuarios o trabajadores, para esto consulto la base de tareas y vacio los campos en una tabla como la anterior. Para cada registro q vacio, el ultimo campo donde dice usuario creo un campo de seleccion el cual lleno con los usuarios que existen en mi base de usuarios.

<SELECT NAME="usuario" SIZE="1" onchange="actualiza()">
<option selected value="x">Usuario</option>
While ($registro_usuar=mysql_fetch_assoc($usuar)) {
<option value=\"".$registro_usuar['usuario']."\">".$registro_usuar['usuario']."</option>;
</SELECT>


como pueden ver solo ocupo un campo de seleccion(usuario), el cual se crea conforme a usuarios exista, el valor es igual en el texto que en value. El objetivo es seleccionar una tarea y asignarle un usuario, tomar otra y asignarle otro usuario. cada vez que selecione un usuario quiero almacenar el nuevo valor seleccionado y guardarla en una campo de texto. para esto hice la funcion de onchange=(actualiza).
function actualiza() {
i=document.principal.usuario12.selectedIndex;
cadena=document.principal.usuario12.options[i].text;
document.principal.regresa.value=i;}
esta funciona muy bien cuando solo existe un usuario, porque solo aparece un campo de seleccion, cuando es mas de uno se pierde y me manda que usuario12.options es nulo creen que se deba a que creo tantos campos de seleccion como registros encuentre y todos con el mismo nombre.

mi pregunta como puedo hacer para que esto funcione, tomando en cuenta que el numero de tareas no es fijo y por eso no se cuantos campos de seleccion deba crear? O tiene otra idea de como hacer esto mas simple....

de antemano gracias.
Me resulta difícil de entender viendo solo los pedasoz de codigo, creo que quizas el error es que estas llamando a usuario12 en vez de usuario?¿

Saludos
  #3 (permalink)  
Antiguo 19/10/2006, 12:06
 
Fecha de Ingreso: abril-2005
Mensajes: 124
Antigüedad: 19 años, 1 mes
Puntos: 0
perdon....aqui esta el codigo...
<?

require ("aut_config.inc.php"); // incluir configuracion.
$pag=$_SERVER['PHP_SELF']; // el nombre y ruta de esta misma página.
?>
<html>
<head>
<script>
function actualiza() {
i=document.principal.usuario.selectedIndex;
cadena=document.principal.usuario.options[i].text;
document.principal.regresa.value=i;
}
</script>
</head>
<body bgcolor="#FFFFFF">
<form name=principal>
<?
$db_conexion= mysql_connect("$sql_host", "$sql_usuario", "$sql_pass") or die("No se pudo conectar a la Base de datos") or die(mysql_error());
mysql_select_db("$sql_db") or die(mysql_error());
$usuario_consulta = mysql_query(" select clave,plataforma,pozo,pemex.usuario from pemex left join usuarios on pemex.usuario=usuarios.usuario where usuarios.usuario is null;") or die("No se pudo realizar la consulta a la Base de datos");
?>
<table width="600" border="1" cellspacing="0" cellpadding="4" bordercolor="#000000" align="center">
<tr bgcolor="#CCFFCC">
<td width="14%">
<div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#0000CC">Clave
</font></b></div>
</td>
<td width="30%">
<div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#0000CC">Plataforma
</font></b></div>
</td>
<td width="24%">
<div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#0000CC">Pozo
</font></b></div>
</td>
<td width="32%">
<div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#0000CC">Asignación de Usuario
</font></b></div>
</tr>
<?
while($resultados = mysql_fetch_array($usuario_consulta)) {
?>
<tr>
<?
echo"<td width=\"14%\" bgcolor=\"#056084\"><div align=\"center\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\" color=\"#ffffff\">$resultados[clave]</font></div></td>";
echo"<td width=\"30%\" bgcolor=\"#056084\"><div align=\"center\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\" color=\"#ffffff\">$resultados[plataforma]</font></div></td>";
echo"<td width=\"24%\" bgcolor=\"#056084\"><div align=\"center\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\" color=\"#ffffff\">$resultados[pozo]</font></div></td>";
?>
<td width="32%" bgcolor="#056084">
<div align="center">
<SELECT NAME="usuario" SIZE="1" onchange="actualiza()">
<option selected value="x">Usuario</option>
<?
$usuar = mysql_query("SELECT usuario FROM usuarios order by usuario") or die("No se pudo realizar la consulta a la Base de datos");
While ($registro_usuar=mysql_fetch_assoc($usuar)) {
echo "<option value=\"".$registro_usuar['usuario']."\">".$registro_usuar['usuario']."</option>\n";
}
mysql_free_result($usuar);
?>
</SELECT>
| <a href="$pag?accion=prue&id=$resultados[clave]">Nivel acceso</a></font></div>
</div>
</td>
</tr>
<?
}
?>
</table>
<?
mysql_free_result($usuario_consulta);
mysql_close();
?>
<input type=text name=regresa>
</form>
</BODY>
</HTML>
  #4 (permalink)  
Antiguo 19/10/2006, 12:17
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 10 meses
Puntos: 0
Cita:
Iniciado por jgrc Ver Mensaje
Para cada registro q vacio, el ultimo campo donde dice usuario creo un campo de seleccion el cual lleno con los usuarios que existen en mi base de usuarios.
Eso quiere decir que creas un campo select por cada usuario? X cada tarea? (La verdad es q no entiendo mu bien qué quieres decir la hora q es ya estoy espesito...).


Si es así deberías universalizar la función actualiza para q venga de la select q venga lo ejecute correctamente.
Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #5 (permalink)  
Antiguo 19/10/2006, 12:23
 
Fecha de Ingreso: abril-2005
Mensajes: 124
Antigüedad: 19 años, 1 mes
Puntos: 0
si djreficul , creo un select para cada nueva tarea(cabe mencionar q el select tiene el mismo nombre para todos los registros---"usuario"). el resultado va a ser los mismos usuarios para cada tarea, pero tu puedes seleccionar el usuario que desees.

como hago a actualiza universal?

gracias
  #6 (permalink)  
Antiguo 19/10/2006, 12:32
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 10 meses
Puntos: 0
Siempre el mismo name para el select? Lo normal es q los nombremos de forma diferente pa q no haya confusion pero la idea de universalizar a la q me refiero es q pases como argumento el campo select del q hablas y así puedas ejecutar la acción deseada según el select:

Ejemplo:

Código HTML:
<SELECT NAME="usuario" SIZE="1" onchange="actualiza(this)">
<option selected value="x">Usuario</option> 
While ($registro_usuar=mysql_fetch_assoc($usuar)) {
<option value=\"".$registro_usuar['usuario']."\">".$registro_usuar['usuario']."</option>;
</SELECT> 
Y la función se interpretaría ahora así:

Código:
function actualiza(campo) {
i=campo.selectedIndex;
cadena=campo.options[i].text; 
document.principal.regresa.value=i; //Esta variable esta fuera de mi alcance no se si deberia cambiarse algo para q funcione todo correctamente.
}
Espero q te sirva de ayuda.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #7 (permalink)  
Antiguo 19/10/2006, 13:50
 
Fecha de Ingreso: abril-2005
Mensajes: 124
Antigüedad: 19 años, 1 mes
Puntos: 0
bueno, deja y lo intento, gracias por tu valiosa ayuda....
  #8 (permalink)  
Antiguo 26/10/2006, 17:03
 
Fecha de Ingreso: abril-2005
Mensajes: 124
Antigüedad: 19 años, 1 mes
Puntos: 0
djreficul, muchas gracias por tu apoyo.
ya me quedo, solo genere de manera automatica el nombre de tal manera que este fuera diferente y listo.
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 15:27.