Foros del Web » Programando para Internet » Javascript »

selección multiple de opciones con mouse sin tecla Control.

Estas en el tema de selección multiple de opciones con mouse sin tecla Control. en el foro de Javascript en Foros del Web. Tengo 2 select: El primero lista de manera fija 7 opciones. Ya esta listo. El segundo lista de acuerdo a una de las 7 opciones ...
  #1 (permalink)  
Antiguo 17/02/2006, 08:37
 
Fecha de Ingreso: noviembre-2005
Ubicación: venezulea
Mensajes: 214
Antigüedad: 18 años, 5 meses
Puntos: 0
Pregunta selección multiple de opciones con mouse sin tecla Control.

Tengo 2 select:

El primero lista de manera fija 7 opciones. Ya esta listo.

El segundo lista de acuerdo a una de las 7 opciones del primer select una serie de listado, lo cuales carga de una base de datos. Este es de seleccion multiple. Ya esta listo.

Todo funciona, lo que me falta es que una vez que el select 2 liste los datos. el usuario con el mouse pueda seleccionar 2 o 3 o 4 opciones. Imagino que debe haber una propiedad o atributo del objeto select que yo no se y que hace esta selección multiple. O tal vez una funcion php.

Muchas Gracias.

Última edición por ostayde; 17/02/2006 a las 09:50
  #2 (permalink)  
Antiguo 17/02/2006, 08:49
Avatar de JorgitoAlfajor  
Fecha de Ingreso: enero-2006
Mensajes: 152
Antigüedad: 18 años, 3 meses
Puntos: 1
Tu duda es sobre html, este es el foro de php. Igualmente, eso lo podés hacer así agregando el "multiple" a la etiqueta select:
Código HTML:
<select name="tu_nombre[]" size="5" multiple>
.....
</select> 
Con "size" indicas la cantidad de opciones que va a mostrar el select (yo puse 5 a modo de ejemplo). El nombre del select debe ser de la forma "nombre[]" con los corchetes al final, para luego poder recuperar, en el script php que reciba los datos, las opciones select múltiple a modo de arreglo.
Saludos.
__________________
¿Se me entiende la letra?

Última edición por JorgitoAlfajor; 17/02/2006 a las 09:01
  #3 (permalink)  
Antiguo 17/02/2006, 09:19
 
Fecha de Ingreso: noviembre-2005
Ubicación: venezulea
Mensajes: 214
Antigüedad: 18 años, 5 meses
Puntos: 0
lo de colocarle multiple al objeto select esta listo y funciona bien.

Puedo seleccionar perfectamente los resgistros que slita el select a través de la tecla control y el mouse.

Lo que yo necesito es poder seleccionar dichos registros, pero con el mouse sin utilizar la tecla control.
  #4 (permalink)  
Antiguo 17/02/2006, 09:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cualquier solución de ese estilo no podrás hacerlo con PHP . .Recuerda una vez más que PHP se ejecuta en el "lado del servidor" ..

Intenta usar los foros adecuados (una vez que indentifiques que el problema no es de PHP).

Por cierto .. edité el título para que quede más claro .. Recuerda: preguntas más claras y especificas -> mejor y más rápido respuesta.

Un saludo,
  #5 (permalink)  
Antiguo 17/02/2006, 09:48
 
Fecha de Ingreso: noviembre-2005
Ubicación: venezulea
Mensajes: 214
Antigüedad: 18 años, 5 meses
Puntos: 0
El foro es para la gente que tiene dudas. No tengo idea de como hacer lo que pregunto, si supiera ten por seguro que me iria al foro adecuado. No se si lo puedo hacer es php, o en javascript o en otro. Quisiera sugerencia de que lenguaje es el más adecuado. (Tu no eres el dueño del foro, dejame tranquila, y tambien permite que el que me quiera ayudar lo haga)
  #6 (permalink)  
Antiguo 17/02/2006, 23:07
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 6 meses
Puntos: 4
hola, estuve haciendo esto:

Cita:
<html>
<head>
<script>
todos = new Array();
function marcar(s) {
cual=s.selectedIndex;
for(y=0;y<s.options.length;y++){
if(y==cual){
s.options[y].selected=(todos[y]==true)?false:true;
todos[y]=(todos[y]==true)?false:true;
}else{
s.options[y].selected=todos[y];
}
}
}
</script>
</head>

<body>
<form action="" method="get" name="f">
<select name="sel" size="10" multiple onclick="marcar(this)" >
<option value="a">a</option>
<option value="c">c</option>
<option value="d">d</option>
<option value="e">e</option>
<option value="r">r</option>
<option value="t">t</option>
<option value="y">y</option>
</select></form></body>
</html>
lo cual tiene alguna pequeña falla (tal vez alguien de una mano en ver donde es).

su desempeño es muy errático:
IE: hace lo que quere IE
FF: funciona a la mil maravilla
Opera: funaciona a veces, luego comienza a descontrolarse.



Otra opcion para no lidiar con el select, es "armar" una tablita con las ociones y con un poco de Javascript y otro poco de CSS lo podés emular bastante bien (aunque queda siempre el problema de que se puede deshabilitar JS).

espero te sea útil, yo me voy a dormir.


saludos
__________________
by Capitán Buscapina
.
  #7 (permalink)  
Antiguo 20/02/2006, 17:17
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 21 años, 5 meses
Puntos: 317
Hola todos :

ostayde : la verdad que en este sitio tratan demasiado bien a la gente. Desde JorgitoAlfajor que te avisó sobre el error de foro hasta Cluster que te editó el título para que no tuvieras que gastarte las yemas.
Ni hablar de Cap.Buscapina que encima te respondió con un código.

Te sugiero que leas este tema

Campaña "preguntas inteligentes para obtener respuestas rapidas"

Si no sabes en que foro preguntar, usa el de Web General; aunque si en verdad no sabes si es PHP, javascript o qué ... tal vez deberías estudiar un poco antes de meterte a hacer nada.

Un dato que nadie mencionó hasta ahora : ¿para qué quieres seleccionar con un click en vez de [CTRL]+click o [SHIFT]+click?.
Va contra todas las reglas de accesibilidad. Por más que pongas un cartel enorme sobre el selector diciendo que cambiaste el método para marcar opciones, siempre le vas a complicar la vida a alguno de tus visitantes, y gratuitamente.

Es como si en vez de abrir menúes con [ALT]+letra de acceso, lo cambiaras por [TAB]+la letra. Si todos ya aprendimos un método, no tienes por qué modificarlo.

(En realidad a mi se me ocurren un par de situaciones para hacerlo, pero son un poco rebuscadas y no creo que sea tu caso).


Cap.Buscapina : muy ingenioso tu ejemplo. Lo unico objetable es algo que ignoraría en tu mensaje si no fuera porque lo estoy viendo muy seguido por todo el foro, y es la acotación sobre el comportamiento de IE. Se ha vuelto costumbre echarle la culpa de todo a ese navegador -hasta de lo que hace bien- y no solo no me parece justo, sino que sirve de excusa para que nadie investigue, o peor, para que quienes nunca investigan lo repitan sin tener idea de lo que dicen.

El problema de Firefox es que tiene un poco de pereza con los escripts, por eso hay que elegir bien el evento y así nos aseguramos de que también funcione en navegadores más rápidos, que de otra forma terminan superponiendo operaciones.

Prueba con

Código:
<html>
<head>
<script>
todos = new Array();
function marcar(s) {
cual=s.selectedIndex;
for(y=0;y<s.options.length;y++){
if(y==cual){
s.options[y].selected=(todos[y]==true)?false:true;
todos[y]=(todos[y]==true)?false:true;
}else{
s.options[y].selected=todos[y];
}}} 
</script>
</head>

<body>
<form name="f">
<select name="sel" size="7" multiple="multiple" onchange="marcar(this)" >
<option value="a">a</option>
<option value="c">c</option>
<option value="d">d</option>
<option value="e">e</option>
<option value="r">r</option>
<option value="t">t</option>
<option value="y">y</option>
</select></form></body>
</html>
Saludos (y felices sueños).
  #8 (permalink)  
Antiguo 20/02/2006, 17:34
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Fíjate si el script de este mensaje: http://www.forosdelweb.com/f13/emular-ctrl-click-hacer-click-select-multiple-356757/ te puede servir.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #9 (permalink)  
Antiguo 20/02/2006, 18:45
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 6 meses
Puntos: 4
Cita:
Iniciado por furoya
Cap.Buscapina : muy ingenioso tu ejemplo. Lo unico objetable es algo que ignoraría en tu mensaje si no fuera porque lo estoy viendo muy seguido por todo el foro, y es la acotación sobre el comportamiento de IE. Se ha vuelto costumbre echarle la culpa de todo a ese navegador -hasta de lo que hace bien- y no solo no me parece justo, sino que sirve de excusa para que nadie investigue, o peor, para que quienes nunca investigan lo repitan sin tener idea de lo que dicen.

no estaba, ni está, en mi ánimo despreciar a IE (no creo que le haga falta que yo lo defienda ni lo critique), es mas, si buscariamos en este foro no creo que encuentres manifestaciones mias en contra de IE, ni de FF ni de otro navegador, seguramente si encontrarías a favor de Opera. Esto no quiere decir que los demás no sirvan, cada cual ocupa su sitio y nada más.


Cita:
Iniciado por furoya
Un dato que nadie mencionó hasta ahora : ¿para qué quieres seleccionar con un click en vez de [CTRL]+click o [SHIFT]+click?.
Va contra todas las reglas de accesibilidad. Por más que pongas un cartel enorme sobre el selector diciendo que cambiaste el método para marcar opciones, siempre le vas a complicar la vida a alguno de tus visitantes, y gratuitamente.

Es como si en vez de abrir menúes con [ALT]+letra de acceso, lo cambiaras por [TAB]+la letra. Si todos ya aprendimos un método, no tienes por qué modificarlo.

(En realidad a mi se me ocurren un par de situaciones para hacerlo, pero son un poco rebuscadas y no creo que sea tu caso).
comparto en su totalidad, pero creo que no estamos (al menos yo) para tratar de que los demás hagan las cosas a nuestra manera, en todo caso , entiendo que son pasos que todos dimos para acumular experiencia y que luego nos damos cuentas de que las cosas simples son las mejores.


Cita:
Iniciado por furoya
Saludos (y felices sueños).
gracias, esa noche dormí como un mamut embriagado.
__________________
by Capitán Buscapina
.
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 06:51.