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