Foros del Web » Programando para Internet » Javascript »

arrays, formularios, selects y muchos dolores de cabeza

Estas en el tema de arrays, formularios, selects y muchos dolores de cabeza en el foro de Javascript en Foros del Web. A ver si alguien me puede ayudar... Es un multimail: enviar a diferentes mails un mismo mensaje Tengo en una pagina dos selects, en uno ...
  #1 (permalink)  
Antiguo 14/07/2003, 02:03
 
Fecha de Ingreso: julio-2003
Mensajes: 4
Antigüedad: 20 años, 9 meses
Puntos: 0
arrays, formularios, selects y muchos dolores de cabeza

A ver si alguien me puede ayudar...
Es un multimail: enviar a diferentes mails un mismo mensaje
Tengo en una pagina dos selects, en uno hay una agenda con nombres y direcciones de correo y un campo de texto que sirve para no mostrar todos los datos sino los que coinciden con el patron. Vamos, de la forma...
Código PHP:
<h2>Formulario de envio de MultiMail</h2>
<
form name="mail" method="post" action="enviarmails.php">
Buscar: <input type=text name=busca> <input type=button name=boton value=Buscar onClick="javascript:

  // Defino el array con los datos
  lista = new Array('Juan','Pepe','Luis');
  valores = new Array('[email protected]','[email protected]','[email protected]');

    for (x=document.mail.personas.length;x>=0;x--)
      document.mail.personas[x] = null;

    // Obtengo el valor del texto
    texto = document.mail.busca.value;

    // Creo la expresión regular
    expr = new RegExp('^' + texto,'i');

    // Recorro la lista. Si la expresión regular es OK
    y = 0;

    for (x=0;x<lista.length;x++) {
      if (expr.test(lista[x])) {
        document.mail.personas[y] = new Option(lista[x]);
        document.mail.personas[y].value = valores[x];
        y++;
      }
    }


"
>


<
br>
<
table><tr><td>
<
select name="personas" size="10"><option value="" name="a">-- BUSQUE --</option>

</
select>
</
td><td>
<
input type="button" name="insertar" onClick="javascript:
if(document.mail.personas.selectedIndex>-1){

var x= new Option(document.mail.personas.options[document.mail.personas.selectedIndex].text, document.mail.personas.value);
document.mail.destinatarios.add(x,0);
document.mail.destinatarios.selectedIndex=-1;
document.mail.personas.selectedIndex=-1;
}
else window.alert('no has seleccionado ningun elemento');

value="->">
<
br>
<
input type="button" name="quitar" onClick="javascript:
if(document.mail.destinatarios.selectedIndex>-1){
document.mail.destinatarios.remove(document.mail.destinatarios.selectedIndex);
document.mail.destinatarios.selectedIndex=-1;
document.mail.personas.selectedIndex=-1;
}
else window.alert('no has seleccionado ningun elemento');

value="<-">
</
td>
<
td>
<
select name="destinatarios" size=10>

</
select>

</
td></tr></table>
<
input type=hidden name=para>
<
input type=hidden name=mail>
<
input type=hidden name=para1>
<
input type=hidden name=mail1>
<
input type=hidden name=para2>
<
input type=hidden name=mail2>
<
input type=hidden name=para3>
<
input type=hidden name=mail3>

<
br><br>
<
br>

<
input type="button" name="button" value="Ver mailes" onClick="javascript:
var miArray=document.mail.destinatarios.options;
if(miArray.length>0){
  if(miArray.length>=1){
    document.mail.mail.value=miArray[0].value;
    document.mail.para.value=miArray[0].text;
  }
  if(miArray.length>=2){
    document.mail.mail1.value=miArray[1].value;
    document.mail.para1.value=miArray[1].text;
  }
  if(miArray.length>=3){
    document.mail.mail2.value=miArray[2].value;
    document.mail.para2.value=miArray[2].text;
  }
  if(miArray.length>=4){
    document.mail.mail3.value=miArray[3].value;
    document.mail.para3.value=miArray[3].text;
  }
  if (miArray.length>=5) window.alert('Por ahora el multimail no soporta a mas de 4 receptores. No se mostraran a partir del cuarto');
  document.mail.submit();
} else window.alert('seleccione algun destinatario');

"
>

</
form
Mi problema es como enviar el contenido del select 'destinatarios' (¿un array?): enviar el nombre de cada destinatario y su mail, sabiendo que el contenido de la lista puede ser muy variable.
Tal y como esta ahora funciona pero no permite mandar a mas de 4 destinatarios y pretendo que se pueda enviar a un numero indeterminado de destinatarios
[Nota: este codigo esta simplificado, el original saca los nombres y direcciones de correo de una Base de datos, no he puesto el campo de textarea ...]

gracias de antemano...

jose

Pd alguna solucion mas sencilla pero sin abusar tanto de javascript??
  #2 (permalink)  
Antiguo 14/07/2003, 03:38
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Mensaje duplicado en http://www.forosdelweb.com/showthrea...&postid=437332
  #3 (permalink)  
Antiguo 14/07/2003, 10:10
Avatar de Tx
Tx
 
Fecha de Ingreso: enero-2002
Ubicación: Cba - Arg
Mensajes: 188
Antigüedad: 22 años, 3 meses
Puntos: 1
Que tal...
No se si te entendi bien, pero porque no cargas el contenido del campo "destinatarios" en un solo campo "hidden" separados por un caracter como ser ";" ó "|". Después en tu aplicación de envio (enviarmails.php ?) los separas ó envias directamente. Casi todos los métodos de envio de emails aceptan multiples destinatarios separados por ";". En PHP no tengo mucha experiencia pero se que existe.

Saludos...
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 23:14.