Ver Mensaje Individual
  #3 (permalink)  
Antiguo 28/05/2018, 00:54
Avatar de manticore2
manticore2
 
Fecha de Ingreso: junio-2012
Mensajes: 8
Antigüedad: 11 años, 10 meses
Puntos: 0
De acuerdo Respuesta: Adaptar formulario web con checkbox aceptacion de privacidad

Cita:
Iniciado por ArturoGallegos Ver Mensaje
en tu formulario no veo el checkbox para términos y condiciones, pero es bastante sencillo

en el formulario agrega
Código HTML:
Ver original
  1. <input type="checkbox" name="terms" required />
Con eso ya harás que el formulario no se envié si no se aceptan los términos y condiciones activando el checkbox, el label puedes poner el que quieres igual que cualquier otro input

Del lado del servidor basta con un if antes de tu código que procesa el formulario
Código PHP:
Ver original
  1. <?php
  2. if(!isset($_POST['terms'])){
  3. return false; // return false para detener la ejecución del resto de instrucciones, puedes igual hacer una redireccion o envió de errores en caso de ajax.
  4. }
Hola, gracias por responder :)

Lo he solucionado de la siguiente manera, a ver si ves algo que se pueda mejorar:

Código HTML:
<div class="form-group pull-left"><input type="checkbox" id="terms" name="terms"/> He leído y acepto las condiciones de privacidad.</div>
<button id="submit-btn" class="btn btn-primary pull-right">Enviar Formulario</button> 
Código PHP:
<?php 
    
require('phpmailer/PHPMailerAutoload.php');
    
$name trim($_POST['name']);
    
$email trim($_POST['email']);
    
$phone trim($_POST['phone']);
    
$subject trim($_POST['subject']);
    
$message trim($_POST['message']);
    if(!isset(
$_POST['terms'])){
            
$signal 'bad';
            
$msg 'Acepte nuestra política de privacidad.';
    }
    else if(
$name != null && $email != null && $phone != null && $message != null){
        if(!
filter_var($emailFILTER_VALIDATE_EMAIL)) 
        {
            
$signal 'bad';
            
$msg 'Error. E-mail inválido, por favor compruébelo.';
        }
        else{

....
Lo cierto es que funciona tal como está, pero no sé si hay algo raro que debiera cambiar.

NOTA: Sí que he visto algo que igual no tiene importancia, pero si marcas el checkbox y refrescas la pantalla por ejemplo con F5 se queda marcada por defecto, ¿hay algún modo de refrescar el valor de la casilla marcada aunque refresques pantalla? al igual que el resto de campos se vacian quiero decir.

Saludos!

EDITO: También he solucionado lo del checkbox, si añades un atributo en la pestaña del input autocomplete="off" al refrescar no se queda marcada por defecto.

Última edición por manticore2; 28/05/2018 a las 01:35 Razón: solucion