Foros del Web » Programando para Internet » PHP »

Enviar el contenido de un select (nombres y datos) en un formulario POST

Estas en el tema de Enviar el contenido de un select (nombres y datos) en un formulario POST en el foro de PHP 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:58
 
Fecha de Ingreso: julio-2003
Mensajes: 4
Antigüedad: 14 años, 5 meses
Puntos: 0
Enviar el contenido de un select (nombres y datos) en un formulario POST

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.
[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:59
 
Fecha de Ingreso: enero-2002
Mensajes: 88
Antigüedad: 15 años, 11 meses
Puntos: 0
1. Puedes pasar los arrays que quieras a otra página, y en PHP recorrer los arrays con comodidad. Prueba este ejemplo:
Código PHP:
reset($destinatarios);
while (list(
$clave$valor) = each($destinatarios))
{
   echo 
"Destinatario($clave) = $valor<br>\n";


2. El uso de JavaScript no es sustituíble con PHP cuando iteraciona dentro de la página del cliente; el PHP se utiliza para ejecutarse en el servidor y enviar un resultado a la cliente. Una vez la página ya esté en el browser del cliente sólo se puede "modificar" desde el JavaScript.
  #3 (permalink)  
Antiguo 14/07/2003, 04:27
 
Fecha de Ingreso: julio-2003
Mensajes: 4
Antigüedad: 14 años, 5 meses
Puntos: 0
Creo que tu respuesta no encaja a mi pregunta (¿tal vez deberia preguntar lo mismo en el foro javascript? ¿problema en javascript?)
Si ejecutas mi codigo en el navegador aparecen dos selects, lo que me interesa a mi es _enviar todo el contenido de uno de esos selects_ el de destinatarios (esten seleccionados o no).
para ello creo que lo debo hacer mediante un javascript para marcar como seleccionado todos los elementos del select "destinatarios" (o tal vez destinatarios[] ?) para despues mandar el formulario y que un PHP reciba un array con destinatarios[]
Mi dolor de cabeza-> ¿como hacerlo?

muchas gracias... ¿¡ más ideas !?
  #4 (permalink)  
Antiguo 14/07/2003, 04:37
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 16 años, 3 meses
Puntos: 380
Cita:
(¿tal vez deberia preguntar lo mismo en el foro javascript? ¿problema en javascript?)
es que yá lo duplicaste en el foro de javascript, exactamente a los cinco minutos de publicar el primero.

Por favor, no dupliques las preguntas en distintos foros. Si no encaja en un foro los moderadores yá se encargarán de trasladarlo al foro apropiado.

duplicado en http://www.forosdelweb.com/s/msg141600.html

saludos
  #5 (permalink)  
Antiguo 14/07/2003, 04:45
 
Fecha de Ingreso: julio-2003
Mensajes: 4
Antigüedad: 14 años, 5 meses
Puntos: 0
lo siento ;-(
  #6 (permalink)  
Antiguo 14/07/2003, 04:52
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 16 años, 3 meses
Puntos: 380
nadie nace enseñado.

Puse los enlaces en ambos posts para que si alguien se anima a responder compruebe en el otro que no se haya dado yá la misma respuesta.

Un saludo
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 04:57.