<?php
include('src/classes/class.html5form.php');
if (isset($_POST['save'])) {
$ret = html5form::checkFormData($_POST);
if (is_array($ret)) {
echo '<pre>Errors = ' . print_r($ret, true) . '</pre>';
}
}
$oForm = new html5form('.');
$oForm->addCode('<div class="left halfWidth">');
$oForm->addNameField('Name *', 'name', $_POST['name'], null, null, true, 'full name, at least 2 words', array(array('function' => 'str_word_count', 'operator' => '>=', 'compare' => 2)));
$oForm->addCode('</div><div class="right halfWidth">');
$oForm->addTelField('Phone number *', 'phone', $_POST['phone'], null, null, true);
$oForm->addCode('</div><div class="clear"></div><div class="left halfWidth">');
$oForm->addEmailField('Email address *', 'email', $_POST['email'], true);
$oForm->addCode('</div><div class="right halfWidth">');
$oForm->addRadioGroup('Gender *', 'gender', array(array('male', 'Male', ($_POST['gender'] == 'male')), array('female', 'Female', ($_POST['gender'] == 'female'))), true, LabelPositions::before, 'description');
$oForm->addCode('</div><div class="clear"></div>');
$oForm->addTextarea('Request *', 'request', $_POST['request'], null, null, true, 'at least 10 words', array(array('function' => 'str_word_count', 'operator' => '>=', 'compare' => 10)), LabelPositions::before, 'high');
$oForm->addCode('<h3 style="margin: 8px 0 4px 0">Location</h3>');
$oForm->addCode('<div class="left halfWidth">');
$oForm->addNumericField('Latitude', 'lat', NumericFieldTypes::float, $_POST['lat']);
$oForm->addCode('</div><div class="right halfWidth">');
$oForm->addNumericField('Longitude', 'lon', NumericFieldTypes::float, $_POST['lon']);
$oForm->addCode('</div>');
$oForm->addCode('<script>
function position(pos) {
document.getElementsByName("lat")[0].value = pos.coords.latitude;
document.getElementsByName("lon")[0].value = pos.coords.longitude;
}
function positionError(error) {
switch (error.code) {
case error.PERMISSION_DENIED:
// alert("Permission denied");
break;
case error.POSITION_UNAVAILABLE:
// alert("Position unavailable");
break;
case error.TIMEOUT:
// alert("Timeout");
break;
case error.UNKNOWN_ERROR:
// alert("Unknown error");
break;
}
getIpLocation();
}
function getIpLocation() {
$.ajax({
url: "http://ip-api.com/json/",
method: "get",
cache: false,
contentType: "json",
processData: false,
success: function(data) {
var geo = $.parseJSON(data);
document.getElementsByName("lat")[0].value = pos.coords.latitude;
document.getElementsByName("lon")[0].value = pos.coords.longitude;
},
error: function() {
alert("Dein aktueller Standort konnte nicht ermittelt werden. Bitte gib ihn selbst so genau wie möglich ein.");
}
});
}
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(position, positionError, {
enableHighAccuracy: true,
timeout: 5000,
maximumAge: 10
});
} else {
getIpLocation();
}
</script>');
$oForm->addCode('<h3 style="margin: 8px 0 4px 0">Legal</h3>');
$oForm->addCheckbox('Privacy *', 'privacy', '1', false, true, LabelPositions::before, 'I know my data won\'t be used or saved, it will only be validated and returned to me', 'description');
$oForm->addButton('Send', ButtonTypes::submit, 'save', 'Save', '', '', ' ', 'desktop');
$oForm->addButton('Reset', ButtonTypes::reset, '', 'Cancel');
$oForm->display();
?>
|