Enviar varias casillas marcadas checkbox con PHP
4 seguidores
Hola, tengo un formulario con algunas opciones checkbox. Resulta que cuando lo envío con php al correo me llega solamente la primera opción del checkbox, me explico:
tengo un grupo de checkbox con 4 elementos (1, 2, 3, 4) y marco el 2, 3 y 4. Pues a mi correo solamente llega la opción 2 (que es a primera que he marcado).
¿Sabéis la solución?
Muchas gracias!!!
sgiraldo
los checks tienen el mismo nombre??
Si es así, es normal que te pille el primer valor.
markshock
si los checks con el mismo nombre le pones el nombre así :
<code>input name=mischecks[] value=1
input name=mischecks[] value=2
input name=mischecks[] value=3</code>
despues en php puedes recogerlo así:
<code>$valoresCheck = $_POST["mischecks"];</code>
con la diferencia que será un array con lo que hayan marcado, vamos que mischecks se convierte en un array y te devuelve en ese array los valores que hayan checkeado :P
pudiendo acceder a ellos del modo;
<code>$valoresCheck[0];
$valoresCheck[1];
$valoresCheck[..];
$valoresCheck[N];</code>
Víctor Sánchez
Hola, gracias por la solución. Una cosa que no se cómo solucionar,cuando recibo el mail en mi correo aparece la palabra Array en el lugar de la propiedad.
¿cómo puedo solucionarlo?
Muchas gracias otra vez gente!!!!
markshock
has de imprimir los valores del array..
sabes como se hace eso?
Víctor Sánchez
Pues sinceramente no. Es decir, no se colocar el contenido del array para que se forme el cuerpo del mensaje y llegue al correo.
Gracias!!!
markshock
veamos..
<code>
for($x==;$x<count($nombrearray);$x++){
echo($nombrearray[$x]."<br>");
}
</code>
al código anterior, solo has de cambiar "nombrearray" por el nombre de la variable y listos ;)
Víctor Sánchez
Hola!!! mira te paso la forma en que se compone el cuerpo del mail:
<code>//Estoy recibiendo el formulario, compongo el cuerpo
$cuerpo .= "Nombre: " . $HTTP_POST_VARS["Nombre"] . "\r\n";
$cuerpo .= "Email: " . $HTTP_POST_VARS["Email"] . "\r\n";
$cuerpo .= "País: " . $HTTP_POST_VARS["País"] . "\r\n";
$cuerpo .= "Código postal: " . $HTTP_POST_VARS["Código_Postal"] . "\r\n";
$cuerpo .= "Puesto departamento: " . $HTTP_POST_VARS["Puesto_Departamento"] . "\r\n";</code>
y claro lo que no se es como meto un bucle en esta historia....
Saludos
markshock
Víctor Impares
Hola!!! mira te paso la forma en que se compone el cuerpo del mail:
<code>//Estoy recibiendo el formulario, compongo el cuerpo
$cuerpo .= "Nombre: " . $HTTP_POST_VARS["Nombre"] . "\r\n";
$cuerpo .= "Email: " . $HTTP_POST_VARS["Email"] . "\r\n";
$cuerpo .= "País: " . $HTTP_POST_VARS["País"] . "\r\n";
$cuerpo .= "Código postal: " . $HTTP_POST_VARS["Código_Postal"] . "\r\n";
$cuerpo .= "Puesto departamento: " . $HTTP_POST_VARS["Puesto_Departamento"] . "\r\n";</code>
y claro lo que no se es como meto un bucle en esta historia....
Saludos
Así...
<code>//Estoy recibiendo el formulario, compongo el cuerpo
$cuerpo .= "Nombre: " . $HTTP_POST_VARS["Nombre"] . "\r\n";
$cuerpo .= "Email: " . $HTTP_POST_VARS["Email"] . "\r\n";
$cuerpo .= "País: " . $HTTP_POST_VARS["País"] . "\r\n";
$cuerpo .= "Código postal: " . $HTTP_POST_VARS["Código_Postal"] . "\r\n";
$cuerpo .= "texto: ". "\r\n";
for($x==;$x<count($nombrearray);$x++){
$cuerpo.= $nombrearray[$x]."\r\n");
}</code>
Víctor Sánchez
Ahí sigo dándole pero no rula. Me sale este error:
Parse error: syntax error, unexpected ';'
Y es la línea del for, así que no le encuentro el sentido....Lo dejaré como lo había hecho (muy cutre....)
Gracias
markshock
Víctor Impares
Ahí sigo dándole pero no rula. Me sale este error:
Parse error: syntax error, unexpected ';'
Y es la línea del for, así que no le encuentro el sentido....Lo dejaré como lo había hecho (muy cutre....)
Gracias
perdón se me colo...
<code>
//Estoy recibiendo el formulario, compongo el cuerpo
$cuerpo .= "Nombre: " . $HTTP_POST_VARS["Nombre"] . "\r\n";
$cuerpo .= "Email: " . $HTTP_POST_VARS["Email"] . "\r\n";
$cuerpo .= "País: " . $HTTP_POST_VARS["País"] . "\r\n";
$cuerpo .= "Código postal: " . $HTTP_POST_VARS["Código_Postal"] . "\r\n";
$cuerpo .= "texto: ". "\r\n";
for($x==;$x<count($nombrearray);$x++){
$cuerpo.= $nombrearray[$x]."\r\n";
}
</code>
Víctor Sánchez
Nada me sale el mismo error...cuando sea mayor y aprenda php sabré hacer las cosas bien...
Gracias!!!1
markshock
Víctor Impares
Nada me sale el mismo error...cuando sea mayor y aprenda php sabré hacer las cosas bien...
Gracias!!!1
pega todo el código de la página anda... pliz...
Víctor Sánchez
<code>$cuerpo .= "Nombre: " . $HTTP_POST_VARS["Nombre"] . "\r\n";
$cuerpo .= "Email: " . $HTTP_POST_VARS["Email"] . "\r\n";
$cuerpo .= "País: " . $HTTP_POST_VARS["País"] . "\r\n";
$cuerpo .= "Código postal: " . $HTTP_POST_VARS["Código_Postal"] . "\r\n";
$cuerpo .= "Puesto departamento: " . $HTTP_POST_VARS["Puesto_Departamento"] . "\r\n";
$cuerpo .= $HTTP_POST_VARS["espacio"] . "\r\n";
$cuerpo .= "Comprador Software: " . $HTTP_POST_VARS["comprador_ecm"] . "\r\n";
$cuerpo .= "Comprador Software: " . $HTTP_POST_VARS["comprador_erp"] . "\r\n";
$cuerpo .= "Comprador Software: " . $HTTP_POST_VARS["comprador_bi"] . "\r\n";
$cuerpo .= "Comprador Software: " . $HTTP_POST_VARS["comprador_crm"] . "\r\n";
$cuerpo .= "Tipo aplicativo a renovar: " . $HTTP_POST_VARS["tipo_aplicativo_renovar"] . "\r\n";
$cuerpo .= "Otros aplicativos: " . $HTTP_POST_VARS["otros_aplicativos"] . "\r\n";
$cuerpo .= $HTTP_POST_VARS["espacio"] . "\r\n";
$cuerpo .= "Productos instalados último mes: " . $HTTP_POST_VARS["ultimo_mes_ecm"] . "\r\n";
$cuerpo .= "Productos instalados último mes: " . $HTTP_POST_VARS["ultimo_mes_erp"] . "\r\n";
$cuerpo .= "Productos instalados último mes: " . $HTTP_POST_VARS["ultimo_mes_bi"] . "\r\n";
$cuerpo .= "Productos instalados último mes: " . $HTTP_POST_VARS["ultimo_mes_crm"] . "\r\n";
$cuerpo .= "Tipo de proyecto último mes: " . $HTTP_POST_VARS["proyecto_realizado_ult_mes"] . "\r\n";
$cuerpo .= "Otro proyecto último mes: " . $HTTP_POST_VARS["otro_proyecto_realizado_ult_mes"] . "\r\n";
$cuerpo .= "Proyecto próximos seis meses: " . $HTTP_POST_VARS["proximos_seis_meses"] . "\r\n";
$cuerpo .= "Otro proyecto próximos seis meses: " . $HTTP_POST_VARS["otro_proximos_seis_meses"] . "\r\n";
$cuerpo .= $HTTP_POST_VARS["espacio"] . "\r\n";
$de_email = $HTTP_POST_VARS["Email"];
//mando el correo...
mail("xxx@xxx.com","Encuesta ranking mensual de aplicaciones corporativas",$cuerpo,"From: $de_email");</code>
zigotica
asumiendo que empiezas la página con un menor que interrogante, as i a bote pronto veo que falta inicializar la variable cuerpo, ya que la primera linea la intenta concatenar con .= en lugar de cuerpo = ....
¿pero el error que te da cual es?
markshock
<code>$cuerpo = "Nombre: " . $HTTP_POST_VARS["Nombre"] . "\r\n";
$cuerpo .= "Email: " . $HTTP_POST_VARS["Email"] . "\r\n";
$cuerpo .= "País: " . $HTTP_POST_VARS["País"] . "\r\n";
$cuerpo .= "Código postal: " . $HTTP_POST_VARS["Código_Postal"] . "\r\n";
$cuerpo .= "Puesto departamento: " . $HTTP_POST_VARS["Puesto_Departamento"] . "\r\n";
for($x==;$x<count($nombrearray);$x++){
$cuerpo.= $nombrearray[$x]."\r\n";
}
$cuerpo .= $HTTP_POST_VARS["espacio"] . "\r\n";
$cuerpo .= "Comprador Software: " . $HTTP_POST_VARS["comprador_ecm"] . "\r\n";
$cuerpo .= "Comprador Software: " . $HTTP_POST_VARS["comprador_erp"] . "\r\n";
$cuerpo .= "Comprador Software: " . $HTTP_POST_VARS["comprador_bi"] . "\r\n";
$cuerpo .= "Comprador Software: " . $HTTP_POST_VARS["comprador_crm"] . "\r\n";
$cuerpo .= "Tipo aplicativo a renovar: " . $HTTP_POST_VARS["tipo_aplicativo_renovar"] . "\r\n";
$cuerpo .= "Otros aplicativos: " . $HTTP_POST_VARS["otros_aplicativos"] . "\r\n";
$cuerpo .= $HTTP_POST_VARS["espacio"] . "\r\n";
$cuerpo .= "Productos instalados último mes: " . $HTTP_POST_VARS["ultimo_mes_ecm"] . "\r\n";
$cuerpo .= "Productos instalados último mes: " . $HTTP_POST_VARS["ultimo_mes_erp"] . "\r\n";
$cuerpo .= "Productos instalados último mes: " . $HTTP_POST_VARS["ultimo_mes_bi"] . "\r\n";
$cuerpo .= "Productos instalados último mes: " . $HTTP_POST_VARS["ultimo_mes_crm"] . "\r\n";
$cuerpo .= "Tipo de proyecto último mes: " . $HTTP_POST_VARS["proyecto_realizado_ult_mes"] . "\r\n";
$cuerpo .= "Otro proyecto último mes: " . $HTTP_POST_VARS["otro_proyecto_realizado_ult_mes"] . "\r\n";
$cuerpo .= "Proyecto próximos seis meses: " . $HTTP_POST_VARS["proximos_seis_meses"] . "\r\n";
$cuerpo .= "Otro proyecto próximos seis meses: " . $HTTP_POST_VARS["otro_proximos_seis_meses"] . "\r\n";
$cuerpo .= $HTTP_POST_VARS["espacio"] . "\r\n";
$de_email = $HTTP_POST_VARS["Email"];
//mando el correo...
mail("xxx@xxx.com","Encuesta ranking mensual de aplicaciones corporativas",$cuerpo,"From: $de_email");</code>
teniendo en cuenta q en esa página solamente tienes ese código.. copya y pega eso... a ver si te vuelve a dar el error, y si te da, dime en que línea te dice...
Víctor Sánchez
Para Zigotica:
Hola! te cuento lo del error. La cuestión era cómo hacer para pasar desde un formulario un grupo de 4 checkbox. La solución es hacer un array de esos checkbox y colocarlos en $cuerpo.
He probado de varias formas poner el bucle for (aparece a lo largo del post) pero al enviar el form a enviar.php me da error (el que se lee un par de respuestas más arriba). Me da error de un ";" inesperado y ese ";" es el que separa las acciones dentro del for.
No se si me explico...
Como se puede ver en el código todavía no esta introducido ese bucle y el conflicto reside en cómo meter el for en esa maraña (para que muestre las opciones elegidas de los checkbox)
Saludos y gracias por el esfuerzo.......
zigotica
Víctor Impares
Me da error de un ";" inesperado y ese ";" es el que separa las acciones dentro del for.
No se si me explico...
Como se puede ver en el código todavía no esta introducido ese bucle y el conflicto reside en cómo meter el for en esa maraña
ahhh, ok, ahora te sigo, busca aqui:
http://es2.php.net/foreach
Víctor Sánchez
El mismo error en la línea del for.
Parse error: syntax error, unexpected ';' in public_html/clientes/enviar.php on line 20
markshock
pruebalo así a ver... sacando el FOR de ahí dentro..
<code>for($x==;$x<count($nombrearray);$x++){
$datosCheck.= $nombrearray[$x]."\r\n";
}
$cuerpo = "Nombre: " . $HTTP_POST_VARS["Nombre"] . "\r\n";
$cuerpo .= "Email: " . $HTTP_POST_VARS["Email"] . "\r\n";
$cuerpo .= "País: " . $HTTP_POST_VARS["País"] . "\r\n";
$cuerpo .= "Código postal: " . $HTTP_POST_VARS["Código_Postal"] . "\r\n";
$cuerpo .= "Puesto departamento: " . $HTTP_POST_VARS["Puesto_Departamento"] . "\r\n";
$cuerpo.= $datosCheck."\r\n";
$cuerpo .= $HTTP_POST_VARS["espacio"] . "\r\n";
$cuerpo .= "Comprador Software: " . $HTTP_POST_VARS["comprador_ecm"] . "\r\n";
$cuerpo .= "Comprador Software: " . $HTTP_POST_VARS["comprador_erp"] . "\r\n";
$cuerpo .= "Comprador Software: " . $HTTP_POST_VARS["comprador_bi"] . "\r\n";
$cuerpo .= "Comprador Software: " . $HTTP_POST_VARS["comprador_crm"] . "\r\n";
$cuerpo .= "Tipo aplicativo a renovar: " . $HTTP_POST_VARS["tipo_aplicativo_renovar"] . "\r\n";
$cuerpo .= "Otros aplicativos: " . $HTTP_POST_VARS["otros_aplicativos"] . "\r\n";
$cuerpo .= $HTTP_POST_VARS["espacio"] . "\r\n";
$cuerpo .= "Productos instalados último mes: " . $HTTP_POST_VARS["ultimo_mes_ecm"] . "\r\n";
$cuerpo .= "Productos instalados último mes: " . $HTTP_POST_VARS["ultimo_mes_erp"] . "\r\n";
$cuerpo .= "Productos instalados último mes: " . $HTTP_POST_VARS["ultimo_mes_bi"] . "\r\n";
$cuerpo .= "Productos instalados último mes: " . $HTTP_POST_VARS["ultimo_mes_crm"] . "\r\n";
$cuerpo .= "Tipo de proyecto último mes: " . $HTTP_POST_VARS["proyecto_realizado_ult_mes"] . "\r\n";
$cuerpo .= "Otro proyecto último mes: " . $HTTP_POST_VARS["otro_proyecto_realizado_ult_mes"] . "\r\n";
$cuerpo .= "Proyecto próximos seis meses: " . $HTTP_POST_VARS["proximos_seis_meses"] . "\r\n";
$cuerpo .= "Otro proyecto próximos seis meses: " . $HTTP_POST_VARS["otro_proximos_seis_meses"] . "\r\n";
$cuerpo .= $HTTP_POST_VARS["espacio"] . "\r\n";
$de_email = $HTTP_POST_VARS["Email"];
//mando el correo...
mail("xxx@xxx.com","Encuesta ranking mensual de aplicaciones corporativas",$cuerpo,"From: $de_email");</code>
Víctor Sánchez
Nada, me marca el error en el punto en que meto el for....
markshock
Víctor Impares
Nada, me marca el error en el punto en que meto el for....
lo he descubierto.. mekago en satanasa!!
le falta el 0 a $x=
<code>for($x=0;$x<count($nombrearray);$x++){
$datosCheck.= $nombrearray[$x]."\r\n";
} </code>
intercalalo como estaba antes y te funcionará, o déjalo así al principio y también te funcionará...
q mendrugo soy! jojojo
Víctor Sánchez
Pues lo has clavao!!!!!! anda que no me queda pateo para fijarme en esas cosas!!!
Muchísimas gracias por volcarte en la respuesta!!!!!
Te debo unas cuantas jarras!!!!
markshock
nada hombre, otro día me ayudas tu y listos... jejeje
un saludo amigo!