Foros del Web » Programando para Internet » PHP »

checkbox dinamico en formularios

Estas en el tema de checkbox dinamico en formularios en el foro de PHP en Foros del Web. Estimados Amigos, Me encuentro programando un formulario, el cual extrae unas opciones que se muestran en el sitio para que el usuario elija las de ...
  #1 (permalink)  
Antiguo 12/11/2004, 02:07
 
Fecha de Ingreso: mayo-2002
Ubicación: Ecuador
Mensajes: 74
Antigüedad: 15 años, 7 meses
Puntos: 0
checkbox dinamico en formularios

Estimados Amigos,

Me encuentro programando un formulario, el cual extrae unas opciones que se muestran en el sitio para que el usuario elija las de su interes... marcando un visto en una carrilla.... (checkbox). mi problema esta en que quiero capturar todos los vistos que el marque en una sola variable, para que luego esto se vaya por email... pero no se como hacerlo... a pesar de que seleciono 4 o 5 opciones... solo me detecta una... como puedo capturar todas las casillas que marque el usuario en una sola variable, la cual envio luego por email...?

el codigo que uso es:

<input name="servicio_interes" type="checkbox" id="servicio_interes" value="opcion1"> opcion uno<br>
<input name="servicio_interes" type="checkbox" id="servicio_interes" value="opcion2"> opcion dos<br>
<input name="servicio_interes" type="checkbox" id="servicio_interes" value="opcion3"> opcion tres<br>

la variable que quiero capturar es servicio_interes, quisiera que cuando den click en enviar, se capture en esa variable las opciones que el cliente elija... no como en mi caso que solo me captura una

De antemano, Gracias por la ayuda
  #2 (permalink)  
Antiguo 12/11/2004, 02:22
Avatar de Bartak  
Fecha de Ingreso: enero-2004
Ubicación: Chilito
Mensajes: 121
Antigüedad: 13 años, 10 meses
Puntos: 0
en una sola variable pienso que es un poco dificil, quizas con un arreglo...

pero solucion corta pon un identificador diferente a cada check y las variables las recives asi, si son muchas:
<?

while(list($v,$k)=each($HTTP_POST_VARS)){
$cuerpo.="$v = $k <br>";
echo"$v= $k<br>";
}
mail("correo de envio","Formulario",$cuerpo,"From: tucorreo>");
?>
__________________
"Llegado el momento supervisare my propia caida" - Alvaro Henriquez
  #3 (permalink)  
Antiguo 15/11/2004, 00:47
 
Fecha de Ingreso: mayo-2002
Ubicación: Ecuador
Mensajes: 74
Antigüedad: 15 años, 7 meses
Puntos: 0
Gracias por tu ayuda Bartak... disculpame creo no me explique muy bien... o talvez no pillo tu explicacion....

Veras, uso un formulario, el cual consta de un contactenos.php, en este archivo tomo varios datos de una base de datos, como paises, el cual se lista en un menu list... y unas categorias que me gustaria el usuario marque en cada casilla (checkbox) la de su interes... dando la oportunidad de que elija varias casillas a la vez....

El archivo contactenos tiene muchos campos que envia desde un <form> a un archivo send.php, el cual recolecta todas estas variables, son 11 en total, y las envia por correo electronico con un formato en html...

Todo funciona bien, mi problema esta en que no puedo hacer que el usuario seleccione varias categorias a la vez en los checkbox, debido a que cuando se envian por mail solo aparece uno...

Para mayor explicacion, este es el codigo fuente que uso...

Código PHP:
mysql_select_db($database_sistema, $sistema);
$query_servicios = "SELECT servicio, url FROM servicios WHERE mostrar = 'Si' ORDER BY servicio ASC";
$servicios = mysql_query($query_servicios, $sistema) or die(mysql_error());
$row_servicios = mysql_fetch_assoc($servicios);
$totalRows_servicios = mysql_num_rows($servicios);

<?php do { ?>
<input name="servicio_interes" type="checkbox" id="servicio_interes" value="<?php echo $row_servicios['servicio']; ?>"> 
<span class="style2 style5"><?php echo $row_servicios['servicio']; ?></span><br>
<?php } while ($row_servicios mysql_fetch_assoc($servicios)); ?>
como pueden apreciar al hacer el do { se crean los checkbox que se encuentran en la base de datos..., todos con el mismo name y id... en donde queda algo asi:

[ ] Servicio/Categoria 1
[ ] Servicio/Categoria 2
[ ] Servicio/Categoria 3
[ ] Servicio/Categoria 4
[ ] ....
[ ] Servicio/Categoria 9

Quisiera que el usuario pueda marcar las casillas que el dese... dos, tres, ocho... y luego al dar click en submit se vaya al archivo send.php y este procese todos estos datos y los envie por correo...

en el archivo send.php, esta el siguiente codigo:

Código PHP:
<?php
$msg 
"
<b>INFORMACION DE SERVICIOS:<br>
            Servicios de Interes:</b> $servicio_interes<br>    "
;

echo 
"mail($para, $asunto, $msg, $mailheaders)";
?>

alguna idea? talvez estoy usando mal los checkbox... pero mis conocimientos del lenguage no me dicen como manejar las variables en este caso...

gracias por la ayuda, gracias de antemano y a usted Bartak por su tiempo en responder.


Saludos,


Un navegante aprendiz de PHP...
  #4 (permalink)  
Antiguo 15/11/2004, 01:36
 
Fecha de Ingreso: octubre-2004
Mensajes: 15
Antigüedad: 13 años, 1 mes
Puntos: 0
A ver si esto te sirve, modifico un poco tu codigo y luego te lo comento:

Código:
<?php 
 ID = 1;
 do { 
?> 
<input name="servicio_interes_<?php echo ID;?>" type="checkbox" id="servicio_interes" value="<?php echo $row_servicios['servicio']; ?>"> 
<span class="style2 style5"><?php echo $row_servicios['servicio']; ?></span><br> 
<?php 
 ID++;
} while ($row_servicios = mysql_fetch_assoc($servicios)); ?> 
<input name="servicio_numcheck" type="hidden" value="<?php echo ID;?>
Con esto te ira generando cada check llamandose
servicio_interes_1, servicio_interes_2, ..., servicio_interes_X

Y al final tienes un valor oculot llamado servicio_numcheck con el numero de cheks (ID)

Lo que tienes que hacer es cuando recibes los valores en send.php es hacer un for de 1 hasta ID y comprobar los checks si estan correcto.

Espero que te sirva
__________________
Salu2 :golpeado:
[email protected]
  #5 (permalink)  
Antiguo 15/11/2004, 09:19
 
Fecha de Ingreso: mayo-2002
Ubicación: Ecuador
Mensajes: 74
Antigüedad: 15 años, 7 meses
Puntos: 0
Gracias carlos por tu respuesta, con el codigo qu eme distes logre generar los check con un nombre diferente... muchas gracias...

Ahora lo que me sucede es, como hago para que el archivo send.php identifique las variables que el usuario seleccion....? y luego las anexe al correo que envia, el cual esta en formato html... lo ideal seria meter todas estas categorias en una variable... tal como lo decia en el codigo anterior... Servicios de Interes:</b> $servicio_interes<br> ";

Gracias por la ayuda, tengan buen dia...
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 09:22.