grab values from checkboxes in contact form and $_POST email

ultranit

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

marcino0o

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.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

grab values from checkboxes in contact form and $_POST email

From Dev

grab value from checkboxes and post as list to controller

From Dev

How to Grab multiple values from checkboxes with Jquery

From Dev

Getting checkboxes values on email with method="post"

From Dev

Laravel 4 from contact form to admin email

From Dev

php not sending email from contact form

From Dev

MVC Contact Form with Email

From Dev

Contact form not sending to email

From Dev

Contact form not sending an email

From Dev

contact form php - email msg from "select name" form

From Dev

Make form checkboxes appear in the email sent from the form

From Dev

Laravel can't grab inputs from form to send out email

From Dev

PHP Contact Form Coming From Admin's Email

From Dev

How to send email from Contact Form in Drupal 7?

From Dev

Send email from contact form in Laravel 5 using jQuery AJAX

From Dev

Email sending form, checkboxes selection, checkboxes limitation

From Dev

PHP/JavaScript Email Contact Form

From Dev

contact form missing fields in email

From Dev

Django contact form confirmation email

From Dev

Contact form returning blank email

From Dev

My contact form is not sending email

From Dev

Contact form email field issue

From Dev

PHP contact form, not receiving email

From Dev

php contact form not sending email

From Dev

Rails contact form not sending email

From Dev

Checkboxes list values in a form

From Dev

email match with confirm email address in contact form

From Dev

Contact Form - Append ".html" from URL after POST

From Dev

How to post selected checkboxes from order form to ActionResult?