There is a HTML "range" input, but it's not the most common input method out there and will require some javascript with it. Other than that, the only reasonable method is PHP. Though, if you do use PHP, you can copy and paste the HTML and then insert it into your HTML file if you don't want that page to have PHP. Below are a few HTML only examples. May not work in all browsers, so your server side code should always validate. http://jsfiddle.net/h96nU/1/
The below code shows a few inputs using various methods. The range input will update to show the range value that is currently selected. The last number input uses the HTML5 pattern attribute.
input:invalid {
border: 1px solid red;
}
input:valid {
border: 1px solid green;
}
<div>
<input id="range" type="range" min="1" max="120" step="1" />
<span id="range_value">0</span>
</div>
<div>
<input type="number" />
</div>
<div>
<input type="text" />
</div>
<div>
<input type="number" min="1" max="120" step="1" id="n1" name="age" pattern="\d+" />
</div>
var input = document.getElementById('range');
input.addEventListener('change',input_change,false);
function input_change(e) {
var target = e.target || e.srcElement;
var value = target.value;
var showdiv = document.getElementById('range_value');
showdiv.textContent = value;
}
More about Data Validation in HTML can be found at https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Forms/Data_form_validation
For PHP method of an age input loop, look below.
<?php
$min = 1;
$max = 100;
echo '<select name="age">';
for($i = $min; $i <= $max; $i++) {
echo '<option value="'.$i.'">'.$i.'</option>';
}
echo '</select>';
?>