My question is: I am trying to grab values from checkboxes and send them in an email message. Right now all I am getting is the word None. Tried many different answers given on stackoverflow but none work so far.
<?php
if($_POST)
{
$to_Email = "[email protected]"; //Replace with recipient email address
$subject = 'Poruka'; //Subject line for emails
//check if its an ajax request, exit if not
if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
//exit script outputting json data
$output = json_encode(
array(
'type'=>'error',
'text' => 'Request must come from Ajax'
));
die($output);
}
$user_Docs = 'None';
if(isset($_POST['dokument']) && is_array($_POST['dokument']) && count($_POST['dokument']) > 0){
$user_Docs = implode('|', $_POST['dokument']);
}
//check $_POST vars are set, exit if any missing
//if(!isset($_POST["name"]) || !isset($_POST["email"]) || !isset($_POST["telefon"]) || !isset($_POST["objekt"]))
//{
//$output = json_encode(array('type'=>'error', 'text' => 'Input fields are empty!'));
//die($output);
//}
//Sanitize input data using PHP filter_var().
$user_Name = filter_var($_POST["name"], FILTER_SANITIZE_STRING);
$user_Email = filter_var($_POST["email"], FILTER_SANITIZE_EMAIL);
$user_Phone = filter_var($_POST["telefon"], FILTER_SANITIZE_STRING);
$user_Obj = filter_var($_POST["obj"], FILTER_SANITIZE_STRING);
$user_Kva = filter_var($_POST["kva"], FILTER_SANITIZE_STRING);
$user_Izg = filter_var($_POST["god_izg"], FILTER_SANITIZE_STRING);
$user_Ces = filter_var($_POST["kat_ces"], FILTER_SANITIZE_STRING);
$user_Opc = filter_var($_POST["kat_opc"], FILTER_SANITIZE_STRING);
$user_Nam = filter_var($_POST["nam"], FILTER_SANITIZE_STRING);
$user_Nap = filter_var($_POST["nap"], FILTER_SANITIZE_STRING);
//additional php validation
if(strlen($user_Name)<4) // If length is less than 4 it will throw an HTTP error.
{
$output = json_encode(array('type'=>'error', 'text' => 'Name is too short or empty!'));
die($output);
}
if(!filter_var($user_Email, FILTER_VALIDATE_EMAIL)) //email validation
{
$output = json_encode(array('type'=>'error', 'text' => 'Please enter a valid email!'));
die($output);
}
if(!is_numeric($user_Phone)) //check entered data is numbers
{
$output = json_encode(array('type'=>'error', 'text' => 'Only numbers allowed in phone field'));
die($output);
}
if(strlen($user_Obj)<3) //check emtpy message
{
$output = json_encode(array('type'=>'error', 'text' => 'Too short obj! Please enter something.'));
die($output);
}
if(!is_numeric($user_Kva)<0) //check emtpy message
{
$output = json_encode(array('type'=>'error', 'text' => 'Too short kva! Please enter something.'));
die($output);
}
if(!is_numeric($user_Izg)<0) //check emtpy message
{
$output = json_encode(array('type'=>'error', 'text' => 'Too short izg! Please enter something.'));
die($output);
}
if(strlen($user_Ces)<0) //check emtpy message
{
$output = json_encode(array('type'=>'error', 'text' => 'Too short ces! Please enter something.'));
die($output);
}
if(strlen($user_Opc)<0) //check emtpy message
{
$output = json_encode(array('type'=>'error', 'text' => 'Too short opc! Please enter something.'));
die($output);
}
if(strlen($user_Nam)<0) //check emtpy message
{
$output = json_encode(array('type'=>'error', 'text' => 'Too short nam! Please enter something.'));
die($output);
}
/* if(strlen($user_Nap)<0) //check emtpy message
{
$output = json_encode(array('type'=>'error', 'text' => 'Too short nap! Please enter something.'));
die($output);
} */
// Construct email body
$body_message = 'Od: ' . $user_Name . "\r\n";
$body_message .= 'E-mail: ' . $user_Email . "\r\n";
$body_message .= 'Telefon: ' . $user_Phone . "\r\n";
$body_message .= 'Nov: ' . $user_Ob . "\r\n";
$body_message .= 'Kva: ' . $user_Kva . "\r\n";
$body_message .= 'God: ' . $user_Izg . "\r\n";
$body_message .= 'Kat. čes: ' . $user_Ces . "\r\n";
$body_message .= 'Kat. opć: ' . $user_Opc . "\r\n";
$body_message .= 'Nam: ' . $user_Nam . "\r\n";
$body_message .= 'Nap: ' . $user_Nap . "\r\n";
$body_message .= 'Dodatno: ' . $user_Docs . "\r\n";
//proceed with PHP email.
$headers = 'From: '.$user_Email.'' . "\r\n" .
'Reply-To: '.$user_Email.'' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$sentMail = @mail($to_Email, $subject, $body_message .' -'.$user_Name, $headers);
if(!$sentMail)
{
$output = json_encode(array('type'=>'error', 'text' => 'Could not send mail! Please check your PHP mail configuration.'));
die($output);
}else{
$output = json_encode(array('type'=>'message', 'text' => 'Hi '.$user_Name .' Thank you for your email'));
die($output);
}
}
?>
HTML checkbox inputs contain brackets as noted to use by many users on stackoverflow
<label>
<input type="checkbox" value="Tlocrt objekta" name="dokument[]" > Tlocrt objekta </input>
</label>
<label>
<input type="checkbox" value="Građevinska dozvola" name="dokument[]" > Građevinska dozvola </input>
</label>
<label>
<input type="checkbox" value="Glavni projekt" name="dokument[]" > Glavni projekt </input>
</label>
<label>
<input type="checkbox" value="Izvedbeni projekt" name="dokument[]" > Izvedbeni projekt </input>
</label>
<label>
<input type="checkbox" value="Elaborat legalizacije" name="dokument[]" > Elaborat legalizacije </input>
</label>
<label>
<input type="checkbox" value="Elaborat etažiranja" name="dokument[]" > Elaborat etažiranja </input>
</label>
<label>
<input type="checkbox" value="Projekt preuređenja" name="dokument[]" > Projekt preuređenja </input>
</label>
<label>
<input type="checkbox" value="Završno izvješće nadzornog inženjera" name="dokument[]" > Završno izvješće nadzornog inženjera </input>
<script type="text/javascript">
$(document).ready(function() {
$("#submit_btn").click(function() {
//get input field values
var user_Name = $('input[name=name]').val();
var user_Email = $('input[name=email]').val();
var user_Phone = $('input[name=telefon]').val();
var user_Objekt = $('input[name=objekt]').val();
var user_Kvadratura = $('input[name=kvadratura]').val();
var user_Izgradnja = $('input[name=god_izgradnje]').val();
var user_Cestica = $('input[name=kat_cestica]').val();
var user_Opcina = $('input[name=kat_opcina]').val();
var user_Namjena = $('input[name=namjena]').val();
var user_Napomena = $('textarea[name=napomena]').val();
var user_Docs = $("input:checkbox[name=dokument]:checked");
//simple validation at client's end
//we simply change border color to red if empty field using .css()
var proceed = true;
if(user_Name==""){
$('input[name=name]').css('border-color','red');
proceed = false;
}
if(user_Email==""){
$('input[name=email]').css('border-color','red');
proceed = false;
}
if(user_Phone=="") {
$('input[name=telefon]').css('border-color','red');
proceed = false;
}
if(user_Objekt=="") {
$('input[name=objekt]').css('border-color','red');
proceed = false;
}
if(user_Kvadratura=="") {
$('input[name=kvadratura]').css('border-color','red');
proceed = false;
}
if(user_Izgradnja=="") {
$('input[name=god_izgradnje]').css('border-color','red');
proceed = false;
}
if(user_Cestica=="") {
$('input[name=kat_cestica]').css('border-color','red');
proceed = false;
}
if(user_Opcina=="") {
$('input[name=kat_opcina]').css('border-color','red');
proceed = false;
}
if(user_Namjena=="") {
$('input[name=namjena]').css('border-color','red');
proceed = false;
}
/* if(user_Napomena=="") {
$('texarea[name=napomena]').css('border-color','red');
proceed = false;
} */
//everything looks good! proceed...
if(proceed)
{
//data to be sent to server
post_data = {'name':user_Name, 'email':user_Email, 'telefon':user_Phone, 'objekt':user_Objekt, 'kvadratura':user_Kvadratura, 'god_izgradnje':user_Izgradnja, 'kat_cestica':user_Cestica, 'kat_opcina':user_Opcina, 'namjena':user_Namjena, 'napomena':user_Napomena};
//Ajax post data to server
$.post('contact_me.php', post_data, function(response){
//load json data from server and output message
if(response.type == 'error')
{
output = '<div class="error">'+response.text+'</div>';
}else{
output = '<div class="success">'+response.text+'</div>';
//reset values in all input fields
$('#contact_form input').val('');
$('#contact_form textarea').val('');
}
$("#result").hide().html(output).slideDown();
}, 'json');
}
});
//reset previously set border colors and hide all message on .keyup()
$("#contact_form input, #contact_form textarea").keyup(function() {
$("#contact_form input, #contact_form textarea").css('border-color','');
$("#result").slideUp();
});
});
</script>
what i need in the end is to get an email which contains values from checkboxes. Not getting them so far. Everything else in form works. Thank for all replys
Try to serialize() your form data insted of concating it in this way.
http://api.jquery.com/serialize/
So your post_data should look like this:
post_data = $('form#yourForm').serialize();
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments