html - PHP is only submitting the last selection of a multi selection drop-down menu -
i newbie php, , don't know doing wrong or if have done correct, seems working, drop-down menus aren't working.
the $selectthree , $selectfour shows last selection... example if picked dropdown option , b... b show in email... i.e:
name: name number: number date: 10/06/2014 select: dropdowna select2: dropdowna select3: drop down option b select4: drop down option b radio: female checkbox: optionb switch: on email: example@example.com message: message
php:
<?php session_start(); if ($_server['request_method'] == 'post'){ ob_start(); if(isset( $_request['name'], $_request['email'], $_request['message'], $_request['number'], $_request['date'], $_request['select'], $_request['selecttwo'], $_request['selectthree'], $_request['selectfour'], $_request['radio'], $_request['checkbox'], $_request['switch'], $_request['token'] )){ if($_session['token'] != $_post['token']){ $response = "0"; } else { $_session['token'] = ""; $name = $_request['name']; $email = $_request['email']; $message = $_request['message']; $number = $_request['number']; $date = $_request['date']; $select = $_request['select']; $selecttwo = $_request['selecttwo']; $selectthree = $_request['selectthree']; $selectfour = $_request['selectfour']; $radio = $_request['radio']; $checkbox = $_request['checkbox']; $switch = $_request['switch']; switch (true){ case !filter_var($email, filter_validate_email): $response = "<p style='color:red'>invalid email address!</p>"; break; default: $to = "support@loaidesign.co.uk"; $subject = "new message from: $name"; $message = "name: $name <br/> number: $number <br/> date: $date <br/> select: $select <br/> select2: $selecttwo <br/> select3: $selectthree <br/> select4: $selectfour <br/> radio: $radio <br/> checkbox: $checkbox <br/> switch: $switch <br/> email: $email <br/> message: $message"; $headers = 'mime-version: 1.0' . "\r\n"; $headers .= 'content-type: text/html; charset=utf-8' . "\r\n"; $headers .= 'from: '."support@loaidesign.co.uk" . "\r\n"; $headers .= 'reply-to: '.$email . "\r\n"; $params = '-f support@loaidesign.co.uk'; $mailed = (mail($to, $subject, $message, $headers)); if( isset($_request['ajax'])){ $response = ($mailed) ? "1" : "0"; } else { $response = ($mailed) ? "<h2>success!</h2>" : "<h2>error! there problem sending.</h2>"; } break; } echo $response; } } else { echo "error"; } ob_flush(); die(); } ?>
contact form html:
<!--contact form--> <?php $token = md5(uniqid(rand(), true)); $_session['token'] = $token;?> <form id="contactform" class="validate" name="contactform" action="contact.php" method="post"> <input name="token" type="hidden" value="<?php echo $token; ?>"> <input name="ajax" type="hidden" value="1"> <fieldset> <p>your name</p> <input name="name" class="name required fullname" autocomplete="off"> </fieldset> <fieldset> <p>email address</p> <input name="email" type="email" class="email required" autocomplete="off"> </fieldset> <fieldset> <p>message</p> <textarea name="message" rows="5" class="required min3"></textarea> </fieldset> <fieldset> <p>phone number</p> <input name="number" class="hasicon" autocomplete="off"> <i class="form-icon icon-phone"></i> </fieldset> <fieldset> <p>time</p> <input name="time" class="mask-time hasicon" autocomplete="off"> <i class="form-icon icon-clock"></i> </fieldset> <fieldset> <p>date</p> <input name="date" class="required date calendar hasicon" autocomplete="off"> <i class="form-icon icon-calendar"></i> </fieldset> <fieldset> <p class="inline">date selected:</p> <input class="selecteddate inline"></input> </fieldset> <fieldset> <p>dropdown menu</p> <select name="select" class="select required" data-placeholder="choose option"> <option value=""></option> <option value="dropdowna">dropdowna</option> <option value="dropdownb">dropdownb</option> </select> </fieldset> <fieldset> <p>dropdown menu - searchable</p> <select name="selecttwo" class="select-search" data-placeholder="choose option"> <option value=""></option> <option value="dropdowna">dropdowna</option> <option value="dropdownb">dropdownb</option> </select> </fieldset> <fieldset> <p>multi options dropdown menu</p> <select name="selectthree" class="select multi-select" multiple="multiple" tabindex="-1" data-placeholder="choose option"> <option value=""></option> <optgroup label="section one"> <option>drop down option a</option> <option>drop down option b</option> </optgroup> <optgroup label="section two"> <option>drop down option a</option> <option>drop down option b</option> <option>drop down option c</option> <option>drop down option d</option> </optgroup> </select> </fieldset> <fieldset> <p>multi options dropdown menu - min 2 & max 3</p> <select name="selectfour" class="select multi-select" multiple="multiple" tabindex="-1" min="2" max="3"> <option value=""></option> <option>drop down option a</option> <option>drop down option b</option> <option>drop down option a</option> <option>drop down option b</option> </select> </fieldset> <fieldset class="checkbox"> <p>checkboxs:</p> <label><input name="checkbox" type="checkbox" value="optiona" class="required"><span class="checked-icon"><span></span></span><span>option a</span></label> <label><input name="checkbox" type="checkbox" value="optionb" class="required"><span class="checked-icon"><span></span></span><span>option b</span></label> </fieldset> <fieldset class="radio"> <p>radios:</p> <label><input name="radio" type="radio" value="male" class="required"><span class="checked-icon"><span></span></span><span>male</span></label> <label><input name="radio" type="radio" value="female" class="required"><span class="checked-icon"><span></span></span><span>female</span></label> </fieldset> <fieldset class="switch"> <p>switch:</p> <label><input name="switch" type="checkbox" value="on"><span><span></span></span></label> </fieldset> <button id="submit" type="submit">send</button> </form>
to work, should specify in html not name="selectfour"
name="selectfour[]"
edit: php side, can exploit $_request['selectfour'] array.
edit: maybe, can use implode function http://php.net/manual/en/function.implode.php
Comments
Post a Comment