PHP - Drop down

Discussion in 'PHP' started by sam20e, Sep 7, 2012.

  1. #1
    Hi

    I have one date field drop down :


    $day = $_POST['day'];
    $mon = $_POST['month'];
    $year = $_POST['year'];
    $dob = $year . "-" . $mon . "-" . $day;
    $ins = array(
    'd_dob' => $dob
    );				
    PHP:


    
    <tr>
                        <td align="left" valign="middle">Date Of Birth<span class="astrikrequired">*</span>: </td>
                        <td align="left" valign="middle">
                        <select name="day" id="day" class="tyextfild validate-selection required">
                                <?php
    							    if($day == '')
    								{
    									$day=date(d, strtotime($d_dob));
    								}
                                    $gnrl->getDropdownList(array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31'),$day);
                   				 ?>
                        </select>
                        <select name="month" id="month" class="tyextfild validate-selection required">
    						<?php
    							if($month == '')
    								{
    									$month=date(m, strtotime($d_dob));
    									
    								}
    						?>
                                  <option value="01" <?php if(in_array('01',explode(',',$month))) echo 'selected="selected"';?> >Jan</option>
                                  <option value="02" <?php if(in_array('02',explode(',',$month))) echo 'selected="selected"';?>>Feb</option>
                                  <option value="03" <?php if(in_array('03',explode(',',$month))) echo 'selected="selected"';?>>Mar</option>
                                  <option value="04" <?php if(in_array('04',explode(',',$month))) echo 'selected="selected"';?>>Apr</option>
                                  <option value="05" <?php if(in_array('05',explode(',',$month))) echo 'selected="selected"';?>>May</option>
                                  <option value="06" <?php if(in_array('06',explode(',',$month))) echo 'selected="selected"';?>>Jun</option>
                                  <option value="07" <?php if(in_array('07',explode(',',$month))) echo 'selected="selected"';?>>Jul</option>
                                  <option value="08" <?php if(in_array('08',explode(',',$month))) echo 'selected="selected"';?>>Aug</option>
                                  <option value="09" <?php if(in_array('09',explode(',',$month))) echo 'selected="selected"';?>>Sep</option>
                                  <option value="10" <?php if(in_array('10',explode(',',$month))) echo 'selected="selected"';?>>Oct</option>
                                  <option value="11" <?php if(in_array('11',explode(',',$month))) echo 'selected="selected"';?>>Nov</option>
                                  <option value="12" <?php if(in_array('12',explode(',',$month))) echo 'selected="selected"';?>>Dec</option>
                        </select>        
                        <select name="year" id="year" class="tyextfild validate-selection required">
                                <?php
    								if($year == '')
    								{
    									$year=date(Y, strtotime($d_dob));
    								}
                                    $gnrl->getDropdownList(array('1960','1961','1962','1963','1964','1965','1966','1967','1968','1969','1970','1971','1972','1973','1974','1975','1976','1977','1978','1979','1980','1981','1982','1983','1984','1985','1986','1987','1988','1989','1990','1991','1992','1993','1994','1995','1996','1997','1998','1999','2000','2001','2002','2003','2004','2005','2006','2007','2008','2009','2010','2011','2012'),$year);
                                ?>
    
                    </select>
                        </td>
                      </tr>
    
    PHP:


    This works perfectly. After i select date/month/year,and submit, its showing the results stored in the db without any issues... now i need another date set same thing like this. for ex date/month/year drop down. i tried changing the variable names etc but still it shows incorrect date/month/year (previous data) can help me how can i create another set of this 3 dorp down without issues?

    Thanks
     
    sam20e, Sep 7, 2012 IP
  2. EricBruggema

    EricBruggema Well-Known Member

    Messages:
    1,740
    Likes Received:
    28
    Best Answers:
    13
    Trophy Points:
    175
    #2
    OMG.

    Please start your code over again and do it as it should be.

    For example your form should be like this

    Year:
    <select name="year">
    
    $sel = 0; /* or the given value */
    for ($x = 1960; $x < date("Y") + 10; $x++) {
        echo '<option value="<?=$x;?>" ' . ($sel == $x) ? ' selected="selected"' : '') . '>' . $x . '</option>';
    }
    
    PHP:
    </select>

    Year:
    <select name="month">
    
    $sel = 0; /* or the given value, remove the 0 if it is first (01, 02, 03 => 1, 2, 3) */
    $a = array(1 => 'jan', 'feb', 'mar', 'apr', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec');
    foreach ($a AS $number => $value){
        echo '<option value="<?=$number;?>" ' . ($sel == $number) ? ' selected="selected"' : '') . '>' . $value . '</option>';
    }
    
    PHP:
    </select>


    Day:
    <select name="day">
    
    $sel = 0; /* or the given value */
    for ($x = 1; $x < 32; $x++) {
        echo '<option value="<?=$x;?>" ' . ($sel == $x) ? ' selected="selected"' : '') . '>' . $x . '</option>';
    }
    
    PHP:
    </select>

    See? less code, much easier to handle! :)

    btw don't ever make a array from 1 to xx again as you did! USE http://php.net/range

    $a = range("1", "999");

    Have fun and learn! :)
     
    EricBruggema, Sep 8, 2012 IP