It shouldn't be too hard to create 3 drop downs (YYYY, MM, DD). Just use a hidden field that contains the actual date value, and update it whenever an onchange event occurs. The receiving php page would ignore the values from the 3 selects and just use the hidden field's value:
[code:1]
<script type="text/javascript">
function update_date(which) {
document.getElementById(which).value = document.getElementById(which+'_year') + document.getElementById(which+'_month') + document.getElementById(which+'_day');
}
</script>
<input type="hidden" name="date_input" id="date_input" />
<select onchange="update_date('date_input')" id="date_input_year" name="date_input_year">
<option>2007</option>
...
</select>
<select onchange="update_date('date_input')" id="date_input_day" name="date_input_month">
<option>01</option>
...
</select>
<select onchange="update_date('date_input')" id="date_input_day" name="date_input_day">
<option>01</option>
...
</select>
[/code:1]
Or, even simpler, use no javascript at all! If the desired field name is "date_input" then, in the receiving php, just add something like:
[code:1]$_POST[$field_name.'_year'].$_POST[$field_name.'_month'].$_POST[$field_name.'_day'].[/code:1].
This would be incredibly useful because the current data control is really non-accessible and non-intuitive. Most of my users are getting the day and month correct, but few are putting the correct year, (unless I have a lot users born in 2007
)