Foros del Web » Programando para Internet » PHP »

Como validar un checkbox, me esta volviendo loco!!

Estas en el tema de Como validar un checkbox, me esta volviendo loco!! en el foro de PHP en Foros del Web. Hola amigos, recurro a este foro despues de 3 dias de renegar maaaaaaaaaaaaal... estoy dano mis primeros pasos en PHP, en general en programacion web ...
  #1 (permalink)  
Antiguo 08/09/2009, 18:12
 
Fecha de Ingreso: febrero-2008
Mensajes: 8
Antigüedad: 16 años, 2 meses
Puntos: 0
Como validar un checkbox, me esta volviendo loco!!

Hola amigos, recurro a este foro despues de 3 dias de renegar maaaaaaaaaaaaal... estoy dano mis primeros pasos en PHP, en general en programacion web ya que siempre use editores, mi problema es el siguiente (en realidad son dos pero voy a hacer dos post). Tengo un formulario que me permite mandar un mail usando php, usando todos los campos posibles como CC y CCO y direccion de respuesta, pero me ha pasado que si estos datos los dejan en blanco el mail no llega, entonces se me ocurrio poner un checkbox para tildarlo y que se activen las entradas de texto correspondiente, hasta ahi barbaro, con el evebto onclic logro que se habiliten o no, el problema esta cuando hago el post, el action llama a un archivo que lo llame codigo.php que es el siguiente:

<?php
$nombre=$_POST['nombre'];
$email=$_POST['email'];
$destinatario=$_POST['destinatario'];
$asunto=$_POST['asunto'];
$mensaje=$_POST['mensaje'];

$elemento = document.getElementById('check');


//para el envio en formato HTML
$headers = "MIME-Version: 10\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

//dirección del remitente
$headers .= "From: " . $nombre . "<". $email . ">". "\r\n";

if ($elemento.checked) {
//dirección de respuesta, si queremos que sea distinta que la del remitente
$headers .= "Reply-To: " . $nombre . "<" . $_POST['respuesta'] . ">". "\r\n";

//ruta del mensaje desde origen a destino
$headers .= "Return-path: " . $_POST['respuesta'] . "\r\n";

//direcciones que recibián copia
$headers .= "Cc: " . $_POST['cc'] . "\r\n";

//direcciones que recibirán copia oculta
$headers .= "Bcc: " . $_POST['cco'] . "\r\n";

}

mail("$destinatario","$asunto","$mensaje","$header s\r\n");

?>

<?php header("Location:mensaje-enviado.php");exit; ?>

Mi idea es que los headers se carguen solo si es true el checked, pero: si uso una variable para leer el check como esta aqui me dice que no se conoce el comando getElementById, si le saco el $ a elemento me dice Unexpected "=" y si voy tocando cosas y variando, logro que no de error pero siempre hace como si estuviera checked, osea que no lo esta tomando.... por favor, se que es una pavada pero no se como validar y que cargue los headers solo si esta en checked, desde ya gracias y MIL DISCULPAS POR LO LARGO!!!

Martin
  #2 (permalink)  
Antiguo 08/09/2009, 18:21
 
Fecha de Ingreso: mayo-2006
Mensajes: 178
Antigüedad: 17 años, 11 meses
Puntos: 7
Respuesta: Como validar un checkbox, me esta volviendo loco!!

Te estas haciendo una linda mezcla :)

document.getElementById('check') y $elemento.checked no es código php sino javascript que se ejecuta del lado del cliente (recordemos que php se ejecuta del lado del servidor).

Para saber si un campo fue seteado (en el caso de los checkbox o radio buttons se setean cuando se tildan) tenes que user isset().

Segui probando que seguro te sale. Cualquier cosa, aca estamos.

Saludos.
  #3 (permalink)  
Antiguo 08/09/2009, 19:33
 
Fecha de Ingreso: febrero-2008
Mensajes: 8
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Como validar un checkbox, me esta volviendo loco!!

Cita:
Iniciado por Jona77 Ver Mensaje
Te estas haciendo una linda mezcla :)

document.getElementById('check') y $elemento.checked no es código php sino javascript que se ejecuta del lado del cliente (recordemos que php se ejecuta del lado del servidor).

Para saber si un campo fue seteado (en el caso de los checkbox o radio buttons se setean cuando se tildan) tenes que user isset().

Segui probando que seguro te sale. Cualquier cosa, aca estamos.

Saludos.
Me parecia que estgaba haciendo alguna mezcla, pero no entendi lo que me decis nunca use isset(), no me tiras un ejemplito sobre el codigo que yo puse? el check Box se llama check y esta en otra pagina, la pagina con el php solo jeuta codigo, no tiene componentes...
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 10:58.