Jump to content

date of birth drop down selection


utdfederation

Recommended Posts

hello fellas,

 

need some help please if possible.

 

i have created a date of birth section in my form where the user selects his/her date of birth from the dropdown menu.

they would first select the day then month then year of their birthday.

 

how would i setup the database to get this to work?

 

i currently have:

	day VARCHAR( 2 ) NOT NULL ,
month VARCHAR( 4 ) NOT NULL ,
year VARCHAR( 4 ) NOT NULL ,

 

is this correct?

 

many thanks

Link to comment
https://forums.phpfreaks.com/topic/255331-date-of-birth-drop-down-selection/
Share on other sites

this is the code, im sure i have it wrong.

 

    <tr><td>"._DOB.": </td><td><select name ='day' value='$day'>
    <option value=''></option>
    <option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
<option value='11'>11</option>
<option value='12'>12</option>
<option value='13'>13</option>
<option value='14'>14</option>
<option value='15'>15</option>
<option value='16'>16</option>
<option value='17'>17</option>
<option value='18'>18</option>
<option value='19'>19</option>
<option value='20'>20</option>
<option value='21'>21</option>
<option value='22'>22</option>
<option value='23'>23</option>
<option value='24'>24</option>
<option value='25'>25</option>
<option value='26'>26</option>
<option value='27'>27</option>
<option value='28'>28</option>
<option value='29'>29</option>
<option value='30'>30</option>
<option value='31'>31</option>
    </select> : <select name ='month' value='$month'>
    <option value=''></option>
    <option value='Jan'>Jan</option>
    <option value='Feb'>Feb</option>
    <option value='Mar'>Mar</option>
    <option value='Apr'>Apr</option>
    <option value='May'>May</option>
    <option value='June'>June</option>
    <option value='July'>July</option>
    <option value='Aug'>Aug</option>
    <option value='Sept'>Sept</option>
    <option value='Oct'>Oct</option>
    <option value='Nov'>Nov</option>
    <option value='Dec'>Dec</option>
    </select> : <select name ='year' value='$year'>
<option value=''></option>
<option value='1930'>1930</option>
    <option value='1931'>1931</option>
<option value='1932'>1932</option>
<option value='1933'>1933</option>
<option value='1934'>1934</option>
<option value='1935'>1935</option>
<option value='1936'>1936</option>
<option value='1937'>1937</option>
<option value='1938'>1938</option>
<option value='1939'>1939</option>
<option value='1940'>1940</option>
    <option value='1941'>1941</option>
<option value='1942'>1942</option>
<option value='1943'>1943</option>
<option value='1944'>1944</option>
<option value='1945'>1945</option>
<option value='1946'>1946</option>
<option value='1947'>1947</option>
<option value='1948'>1948</option>
<option value='1949'>1949</option>
<option value='1950'>1950</option>
    <option value='1951'>1951</option>
<option value='1952'>1952</option>
<option value='1953'>1953</option>
<option value='1954'>1954</option>
<option value='1955'>1955</option>
<option value='1956'>1956</option>
<option value='1957'>1957</option>
<option value='1958'>1958</option>
<option value='1959'>1959</option>
<option value='1960'>1960</option>
    <option value='1961'>1961</option>
<option value='1962'>1962</option>
<option value='1963'>1963</option>
<option value='1964'>1964</option>
<option value='1965'>1965</option>
<option value='1966'>1966</option>
<option value='1967'>1967</option>
<option value='1968'>1968</option>
<option value='1969'>1969</option>
<option value='1970'>1970</option>
    <option value='1971'>1971</option>
<option value='1972'>1972</option>
<option value='1973'>1973</option>
<option value='1974'>1974</option>
<option value='1975'>1975</option>
<option value='1976'>1976</option>
<option value='1977'>1977</option>
<option value='1978'>1978</option>
<option value='1979'>1979</option>
<option value='1980'>1980</option>
    <option value='1981'>1981</option>
<option value='1982'>1982</option>
<option value='1983'>1983</option>
<option value='1984'>1984</option>
<option value='1985'>1985</option>
<option value='1986'>1986</option>
<option value='1987'>1987</option>
<option value='1988'>1988</option>
<option value='1989'>1989</option>
<option value='1990'>1990</option>
    <option value='1991'>1991</option>
<option value='1992'>1992</option>
<option value='1993'>1993</option>
<option value='1994'>1994</option>
<option value='1995'>1995</option>
<option value='1996'>1996</option>
<option value='1997'>1997</option>
<option value='1998'>1998</option>
<option value='1999'>1999</option>
<option value='2000'>2000</option>
    <option value='2001'>2001</option>
<option value='2002'>2002</option>
<option value='2003'>2003</option>
<option value='2004'>2004</option>
<option value='2005'>2005</option>
<option value='2006'>2006</option>
<option value='2007'>2007</option>
<option value='2008'>2008</option>
<option value='2009'>2009</option>
<option value='2010'>2010</option>
    <option value='2011'>2011</option>
<option value='2012'>2012</option>	
    </select></td></tr>

 

i am using the e107 cms and i have entered this into the page that allows the user to register to become a member.

 

You should store the date in the database in a DATE data type field. That's its purpose, after all.

 

<select> fields don't get an explicit value= attribute; it's inherited from the <option>s. It would be so much easier to build those fields dynamically with php, too.

could you explain how you mean please as i am new to coding.

 

what code should i be using?

 

 

As Pikachu2000 mentioned, you can store the DOB information using the date type. If you're using MySQL, the following link may be helpful:

http://dev.mysql.com/doc/refman/5.1/en/datetime.html

 

 

As for using PHP to develop the drop-down menus, you could do something like the following to generate the "day" menu:

 

<?php
print "<select name='day' value='$day'><option value=''></option>";
for($i=0; $i<=31; $i++) {
print "<option value='$i'>$i</option>";
}
print "</select>";
?>

Ah, just noticed the $day part. If you're looking to pre-populate the form with a DOB from the database, you need to modify the loop to select the necessary option. Here is one way:

 

<?php
$day = 22;

print "<select name='day'><option value=''></option>";
for($i=1; $i<=31; $i++) {
print "<option value='$i'";
if($day == $i) { print " selected='selected'"; }
print ">$i</option>";
}
print "</select>";
?>

 

 

EDIT - sorry, $i should start at 1...not 0  :-[

I just did this about 15 minutes ago

 

		if ((empty($_POST['year'])) OR (empty($_POST['month'])) OR (empty($_POST['day']))) {
	$error [] = 1;
	$date_e = '<h5 style="color: red;">* You forgot to enter a date.</h5>';
	} else {
		$date_yr = (int)$_POST['year'];
		$date_mth = (int)$_POST['month'];
		$date_day = (int)$_POST['day'];

		// Use checkdate as insurance that a date was entered
		if (checkdate($date_mth, $date_day, $date_yr)){ 
			$date_pub = $date_yr.'-';
			$date_pub .= $date_mth.'-';
			$date_pub .= $date_day;
		} else {
				$error [] = 1;
				$date_e = '<h5 style="color: red;">* The date was not valid.</h5>';
				}
		}

 

Then it goes into a date field in the table.

I was going to put it here on freaks to see if this is Okay anyway so here it is.

Also I use  <option value='01'>Jan</option> etc. as  PFMaBiSmAd said.

 

 

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.