Foros del Web » Programando para Internet » PHP »

enviar datos de un vector de checks

Estas en el tema de enviar datos de un vector de checks en el foro de PHP en Foros del Web. Hola, estoy intentando enviar un mail a las personas que son seleccionadas en los checks. No consigo obtener los valores del vector para realizar la ...
  #1 (permalink)  
Antiguo 13/05/2010, 13:38
 
Fecha de Ingreso: septiembre-2007
Mensajes: 29
Antigüedad: 16 años, 7 meses
Puntos: 0
enviar datos de un vector de checks

Hola,

estoy intentando enviar un mail a las personas que son seleccionadas en los checks. No consigo obtener los valores del vector para realizar la consulta y poder enviar los mail que interesa.

A ver si alguien me puede ayudar. Gracias.
Dejo el código:
Código PHP:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <html>
  3. <head>
  4.     <title>Enviar mail</title>
  5. </head>
  6.  
  7. <body>
  8. <?
  9.  
  10. include ("conexion.php");
  11.  
  12.  
  13.  
  14.  
  15. if (!$_POST){
  16. $tabla2 = mysql_query("SELECT * FROM jos_alumnos", $enlace);
  17. while ($row = mysql_fetch_array($tabla2)){
  18.  
  19.   echo "<br><input type=\"checkbox\" name=\"seleccion[]\" value=\"".$row['id']."\">".$row['email']."<br>";
  20.    
  21. }
  22.  
  23.  
  24. ?>
  25. <form action="envia_form_php.php" method=post>
  26. Nombre: <input type=text name="nombre" size=20>
  27. <br>
  28. Email: <input type=text name=email size=20>
  29. <br>
  30. Comentarios: <textarea name=coment cols=32 rows=6></textarea>
  31. <br>
  32. Concepto: <input type=text name=concepto size=20>
  33. <br>
  34. <input type=submit value="Enviar">
  35. </form>
  36. <?
  37. }else{
  38.    
  39.     $cuerpo = "Mensaje enviado\n";
  40.     $cuerpo .= "Nombre: " . $_POST["nombre"] . "\n";
  41.     $cuerpo .= "Email: " . $_POST["email"] . "\n";
  42.     $cuerpo .= "Comentarios: " . $_POST["coment"] . "\n";
  43.  
  44. $lista=implode(',',$_POST["seleccion"]);
  45. $separada = split(",",$lista);
  46.  
  47. while ($registro=mysql_fetch_array($tabla)){
  48.     echo 'Email: ' . $registro['email'] . ' '.'<br>';
  49.     $desde = 'From: ' .$_POST[email];
  50.     $sql=mysql_query("Select email FROM jos_alumnos WHERE id IN(".$lista.")",$enlace);  
  51. while ($row=mysql_fetch_array($sql)){
  52.    //mail($row['email'],$_POST[concepto],$cuerpo,$desde))
  53. }
  54.  
  55. if (mail($registro['email'],$_POST[concepto],$cuerpo,$desde)) {
  56.   echo "";
  57. }else
  58.   echo "No se pudo enviar el correo";
  59.        
  60. }
  61. }
  62.  
  63. ?>
  64. </body>
  65. </html>
  #2 (permalink)  
Antiguo 13/05/2010, 13:47
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 5 meses
Puntos: 48
Respuesta: enviar datos de un vector de checks

Prueba a meter el id del alumno en el nombre del checkbox

Código PHP:
echo "<br><input type=\"checkbox\" name=\"seleccion[".$row['id']."]\" value=\"".$row['id']."\">".$row['email']."<br>"
Otra cosa porque has comentado la linea...

Código PHP:
while ($row=mysql_fetch_array($sql)){
   
//mail($row['email'],$_POST[concepto],$cuerpo,$desde)) 

Si está comentada nunca enviará el email

Saludos!
__________________
El problema de nuestra época consiste en que sus hombres no quieren ser útiles sino importantes.

Winston Churchill
  #3 (permalink)  
Antiguo 13/05/2010, 14:40
 
Fecha de Ingreso: septiembre-2007
Mensajes: 29
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: enviar datos de un vector de checks

Creo que el problema está en esta instrucción:
Código PHP:
Ver original
  1. $lista=implode(',',$_POST["seleccion"]);
No me están llegando los datos a $lista porque al hacer:
print_r ($separada), me imprime: Array ( [0] => ), entonces no me hace la consulta y por tanto no envia el mail.
Pero no sé como arreglarlo, no sé si al enviar un vector o hacerlo en la misma página se hará de otra manera que no consigo encontrar.
A ver si alguien me puede echar una mano.

Etiquetas: enviar, vectores
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 16:47.