Foros del Web » Programando para Internet » Javascript »

select multiple a textarea

Estas en el tema de select multiple a textarea en el foro de Javascript en Foros del Web. Hola muchachos estoy realizando un formulario para enviar correos y pues me gustaría sacar los correos de base de datos en un select múltiple e ...
  #1 (permalink)  
Antiguo 31/03/2010, 07:13
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
select multiple a textarea

Hola muchachos estoy realizando un formulario para enviar correos y pues me gustaría sacar los correos de base de datos en un select múltiple e irlos agregando a un textarea al hacer click y separados por coma, como lo hace hotmail creo.

un ejemplo de lo que quiero es :




de hecho modifique unos codigos, pero solo me copia una direcccion y ya luego la sobre escribe.

Código HTML:
Ver original
  1. <script type="text/javascript">
  2. function muestraentextarea()
  3. {
  4.     var indice=document.forms[0].correos.options.selectedIndex;
  5.     document.forms[0].envia_emails.value=document.forms[0].correos.options[indice].text;
  6. }
  7.  
  8. <form name="forms">
  9. <select multiple="multiple" size="7" name="correos" id="correos" style="width: 500px;" onchange="muestraentextarea()">
  10. <br /><br />
  11. <textarea name="envia_emails" style="width: 500px;" rows="5"></textarea>
  12. </form>


Alguna idea ?
Saludos.
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #2 (permalink)  
Antiguo 31/03/2010, 12:26
 
Fecha de Ingreso: marzo-2008
Mensajes: 82
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: select multiple a textarea

Hola, para rellenar los select con una llamada a la base de datos seria algo asi

Código PHP:
$(document).ready(function(){
$(
"#email").html('<option selected="selected" value="0">Cargando...</option>')
            $.
post("modules/busqueda.php",{  //en un archivo php creas la llamada a la base de datos
                  

                ,function(
data){
                $(
"#email").html(data); //rellena los select
                
            
});



<
select name="email" id="email">
        <
option value="0" selected>--------------------</option>
        </
select>

y el php seria algo asi

$res 
mysql_query("SELECT .....");
        while(
$rs mysql_fetch_array($res))
            echo 
'<option value="'.$rs["id"].'">'.htmlentities($rs["nombre"]).'</option>'
Espero que te sirva, los de ir cargando los emails en el textarea, supongo q tendras q poner un $("select").change(function(){ e ir guardando el valor del select q seleciones en un array .
Espero que te sirva, soy un poco novato tb en esto pero como me han ayudado a mi espero que te sirva.
Un saludo.
  #3 (permalink)  
Antiguo 31/03/2010, 12:37
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: select multiple a textarea

Hola

Prueba así

Código Javascript:
Ver original
  1. document.forms[0].envia_emails.value += document.forms[0].correos.options[indice].text + ",";

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;" />
  #4 (permalink)  
Antiguo 31/03/2010, 14:34
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: select multiple a textarea

riscking lo de llenar en php o ajax no era el problema, gracias de todas formas, adler justo era lo que buscaba gracias me funciona perfecto, solo una pregunta mas o no se si lo mejor seria abrir un tema nuevo, pero como se podria hacer para controlar en el textarea un maximo de correos, digamos 20 arrobas que se yo, ya que la idea de esto es seleccionar los emails desde un select multiple pero tambien ingresar nuevos, pero la idea es no hacer spam y que puedan llenar todos los que deceen, muchas gracias :)
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #5 (permalink)  
Antiguo 31/03/2010, 14:44
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: select multiple a textarea

Hola

Algo como esto te los limitará a 4

Código Javascript:
Ver original
  1. var control = 0;
  2. function muestraentextarea()
  3. {
  4. var indice=document.forms[0].correos.options.selectedIndex;
  5.  
  6.     if (control == 0) {
  7.         document.forms[0].envia_emails.value = document.forms[0].correos.options[indice].text;
  8.     } else if (control <= 3) {
  9.         document.forms[0].envia_emails.value += "," + document.forms[0].correos.options[indice].text;
  10.     }
  11. control += 1;
  12. }

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 31/03/2010, 15:00
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: select multiple a textarea

mmmm si genial pero mi pregunta iba mas enfocada el textarea en si, digo por que claramente puedo ingresar hasta 4 emails desde el select multiple, pero aun puedo seguir anotando en el textarea, lo idea seria que no se despues de la , (coma) numero 20 me salte un alert que diga que no se pueden ingresar mas correos, limite excedido, no se si se podra, de todas formas me avanzaste bastante, ya que mi fuerte no es el javascript, saludos y gracias

Edito : un problema que noto es que al ingresar los 4 si los elimino del textarea y quiero cambiarlos por otros ya no me anda mas :/...

saludos
__________________
Gokuh Salvo al mundo. PUNTO!!!!

Última edición por kaninox; 31/03/2010 a las 15:35
  #7 (permalink)  
Antiguo 01/04/2010, 11:33
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: select multiple a textarea

Hola

Prueba con esto

Código Javascript:
Ver original
  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. var control = 0;
  5. function muestraentextarea(correo) {
  6. var txtarea = document.getElementById("envia_emails");
  7. cantidad_emails = txtarea.value.split(",");
  8.  
  9.     if (cantidad_emails.length <= 3) {
  10.         if (control == 0) {
  11.             txtarea.value += correo;
  12.         } else if (control <= 3) {
  13.             txtarea.value += "," + correo;
  14.         }
  15.     }
  16.  
  17. control += 1;
  18. //alert(cantidad_emails.length);
  19. }
  20.  
  21. var total = 0;
  22. var valor_max = 0;
  23. function valcantidad(txtarea) {
  24. cantidad_emails = txtarea.value.split(",");
  25. total = txtarea.value.length;
  26.     if (cantidad_emails.length <= 4) {
  27. valor_max = 0;
  28.         for (i = 0; i < cantidad_emails.length; i++) {
  29.         valor_max += cantidad_emails[i].length;
  30.         }
  31.  
  32.         if(total > parseInt(valor_max+3)) {
  33.         txtarea.value = txtarea.value.substring(0,parseInt(valor_max+3));
  34.         }
  35.     } else {
  36.         txtarea.value = txtarea.value.substring(0,total-1);
  37.     }
  38. }
  39. </script>
  40. </head>
  41. <body>
  42. <form name="forms">
  43. <select multiple="multiple" size="7" name="correos" id="correos" style="width: 500px;" onchange="muestraentextarea(this.options[this.selectedIndex].value)">
  44. <option value="[email protected]">[email protected]</option>
  45. <option value="[email protected]">[email protected]</option>
  46. <option value="[email protected]">[email protected]</option>
  47. <option value="[email protected]">[email protected]</option>
  48. <option value="[email protected]">[email protected]</option>
  49. <option value="[email protected]">[email protected]</option>
  50. <option value="[email protected]">[email protected]</option>
  51. <option value="[email protected]">[email protected]</option>
  52. </select>
  53. <br /><br />
  54. <textarea name="envia_emails" id="envia_emails" style="width: 500px;" rows="5" onkeyup="valcantidad(this);"></textarea>
  55. </form>
  56. </body>
  57. </html>

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;" />

Etiquetas: select, textarea
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 10:02.