utdfederation Posted January 19, 2012 Share Posted January 19, 2012 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 Quote Link to comment https://forums.phpfreaks.com/topic/255331-date-of-birth-drop-down-selection/ Share on other sites More sharing options...
utdfederation Posted January 19, 2012 Author Share Posted January 19, 2012 Quote Link to comment https://forums.phpfreaks.com/topic/255331-date-of-birth-drop-down-selection/#findComment-1309116 Share on other sites More sharing options...
utdfederation Posted January 19, 2012 Author Share Posted January 19, 2012 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. Quote Link to comment https://forums.phpfreaks.com/topic/255331-date-of-birth-drop-down-selection/#findComment-1309118 Share on other sites More sharing options...
Pikachu2000 Posted January 19, 2012 Share Posted January 19, 2012 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. Quote Link to comment https://forums.phpfreaks.com/topic/255331-date-of-birth-drop-down-selection/#findComment-1309120 Share on other sites More sharing options...
utdfederation Posted January 19, 2012 Author Share Posted January 19, 2012 could you explain how you mean please as i am new to coding. what code should i be using? Quote Link to comment https://forums.phpfreaks.com/topic/255331-date-of-birth-drop-down-selection/#findComment-1309164 Share on other sites More sharing options...
cyberRobot Posted January 19, 2012 Share Posted January 19, 2012 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>"; ?> Quote Link to comment https://forums.phpfreaks.com/topic/255331-date-of-birth-drop-down-selection/#findComment-1309215 Share on other sites More sharing options...
PFMaBiSmAd Posted January 19, 2012 Share Posted January 19, 2012 Also, the value='x' attributes in your month select list need to be the month number. Quote Link to comment https://forums.phpfreaks.com/topic/255331-date-of-birth-drop-down-selection/#findComment-1309218 Share on other sites More sharing options...
cyberRobot Posted January 19, 2012 Share Posted January 19, 2012 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 Quote Link to comment https://forums.phpfreaks.com/topic/255331-date-of-birth-drop-down-selection/#findComment-1309219 Share on other sites More sharing options...
floridaflatlander Posted January 19, 2012 Share Posted January 19, 2012 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. Quote Link to comment https://forums.phpfreaks.com/topic/255331-date-of-birth-drop-down-selection/#findComment-1309223 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.