Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2017
    Messaggi
    4

    Checkbox della privacy obbligatorio

    Ciao a tutti, spero che mi possiate dare una mano.
    Ho un form contatti che funziona molto bene, se un campo è vuoto premendo INVIA si riquadra di rosso finche non si inserisce qualcosa.
    Ora vorrei aggiungere anche un checkbox per l'accettazione della privacy, e se non è spuntato che restituisca un testo accanto "Devi accettare". Ho provato seguendo varie guide ad aggiungere nel file mail.php questo
    Codice PHP:
    $privacy = isset($_POST['privacy']) ? $_POST['privacy'] : 'no'
    e questo nel codice html

    codice HTML:
    <input type="checkbox" name="privacy" value="si"/> Accetto il contratto<br/><br/>
    ma non mi pare che funzioni.

    Posto i codici html, css, js e il file mail.php originali (senza prove di checkbox)

    Grazie a tutti

    qui il codice html

    codice HTML:
    <form action="#" method="post" id="ajax-contact-form">
    <h5>Nome</h5>
    <input type="text" id="cname" placeholder="Nome..." name="name" >
    <h5>Oggetto</h5>
    <input type="text" id="csubject" placeholder="Oggetto..." name="subject" >
    <h5>E-mail</h5>
    <input type="text" id="cmail" placeholder="E-Mail..." name="email" >
    <h5>Il tuo messaggio</h5>
    <textarea placeholder="Scrivi qua..." id="ctext" name="message"></textarea>
    <input class="pull-right margint10" type="submit" value="INVIA">
    </form>
    qui il code javascript

    codice:
    var luxenContactForm = function(){
      $(function(){
      $('#ajax-contact-form').submit(function(e){
      e.preventDefault();
      var cname = $('#cname').val();
      var csubject = $('#csubject').val();
      var cmail = $('#cmail').val();
      var ctext = $('#ctext').val();
      if($.trim(cname) == '' || $.trim(csubject) == '' || $.trim(cmail) == '' || $.trim(ctext) == ''){
          if(cname==""){
              $(this).find('#cname').addClass('fixed-error');
          }
          if(csubject==""){
              $(this).find('#csubject').addClass('fixed-error');
          }
          if(cmail==""){
              $(this).find('#cmail').addClass('fixed-error');
          }
          if(ctext==""){
              $(this).find('#ctext').addClass('fixed-error');
          }
      }else{
          jQuery.ajax({
          type: 'POST',
          url: 'mail.php',
          data: $('#ajax-contact-form').serialize(),
          error:function(){ $('.contact-form').html("Error!"); },
          success: function(veri) { $('.contact-form').html(veri);}
          });
      }
      });
      });
    
      $('#ajax-contact-form').on('keypress', '.fixed-error', function(e) {
          $(this).removeClass('fixed-error');
      });
    }
    qui il file mail.php

    Codice PHP:
    <?php
    error_reporting
    (0);
    $mainemail "info@MIOSITO.com";

    $name        $_POST['name'];
    $email      $_POST['email'];
    $subject    $_POST['subject'];
    $message    $_POST['message'];

    $mailinfo  "MIME-Version: 1.0\r\n";
    $mailinfo .= "Content-type: text/html; charset=utf-8\n";
    $mailinfo .= "From: Cliente da MIOSITO \r\n";
    $mailinfo .= "Reply-To: $name <$email>\r\n";
    $sms  "Name : ".$name."<br />E-Mail : ".$email."<br />Subject : ".$subject."<br />Message : ";
    $sms .= $message;

    $mail mail($mainemail$subject ,stripslashes($sms), $mailinfo);
    if(
    $mail){
    echo 
    "<span>Il tuo messaggio è stato inviato. Ti risponderemo al più presto!</span>";
    }
    else{
    echo 
    "<span>Errore! Si prega di riprovare.</span>";
    }
    ?>

    e infine il CSS per aggiungere il bordo rosso quando un campo è vuoto

    codice HTML:
    .fixed-error{
    border:1px solid red !important;
    }
    Grazie a tutti

  2. #2
    scusa ma nel form che hai postato, la checkbox non mi sembra di vederla!

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2017
    Messaggi
    4
    Quote Originariamente inviata da fermat Visualizza il messaggio
    scusa ma nel form che hai postato, la checkbox non mi sembra di vederla!
    Ciao, sì ho scritto che ho postato il codice originale senza checkbox (per non "inquinare" dal momento che non mi funzionava),
    e ho scritto di aver provato ad aggiungere questo al mail.php
    Codice PHP:
    $privacy = isset($_POST['privacy']) ? $_POST['privacy'] : 'no';

    if(
    $_POST['privacy'] == "si")
    {
        echo 
    "Il tuo messaggio è stato inviato. Ti risponderemo al più presto!";
    }
    else
    {
        echo 
    "Devi accettare";

    e questo nel form html

    codice HTML:
    <input type="checkbox" name="privacy" value="si"/> Accetto il contratto<br/><br/>
    Ma non funziona...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.