Jump to content

PHP dropdown with current date set... Help with my code.


McMaster

Recommended Posts

I have a script that is supposed to show today's current date in drop down menu's but when I try it on my server I am given the date, 31st December 2010. Does anybody know what I am doing wrong here?

 

<?php
$months = array ('January', 'February', 'March', 'April', 'May', 'June','July', 'August', 'September', 'October', 'November', 

'December');
$weekday = array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
$days = range (1, 31);
$years = range (2010, 2020);

$currentDay = date('d');
$currentMonth = date('F');
$currentYear = date('Y');

echo "<select name='weekday'>";
foreach ($days as $value) {
if($value == $currentDay){ $default = 'selected="selected"'; }
    echo '<option '.$default.' value="'.$value.'">'.$value.'</option>\n';
} echo '</select>   ';

echo "<select name='month'>";
foreach ($months as $value) {
if($value == $currentMonth){ $default = 'selected="selected"';}
    echo '<option '.$default.' value="'.$value.'">'.$value.'</option>\n';
} echo '</select>   ';

echo "<select name='year'>";
foreach ($years as $value) {
    if($value == $currentYear){ $default = 'selected="selected"';}
    echo '<option '.$default.' value="'.$value.'">'.$value.'</option>\n';
}  echo '</select>   ';
?>

 

Thanks for your help guys

The reason this is happening is that once you set the $default string, you never reset it. You would have seen this if you had looked at the generated source.

 

This code works:

<?php
$months = array ('January', 'February', 'March', 'April', 'May', 'June','July', 'August', 'September', 'October', 'November', 'December');
$weekday = array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
$days = range (1, 31);
$years = range (2010, 2020);

$currentDay = date('j');
$currentMonth = date('F');
$currentYear = date('Y');

echo "<select name='weekday'>";
foreach ($days as $value) {
  $default = ($value == $currentDay)?'selected="selected"':'';
  echo '<option '.$default.' value="'.$value.'">'.$value."</option>\n";
}
echo '</select>   ';

echo "<select name='month'>\n";
foreach ($months as $value) {
$default = ($value == $currentMonth)?'selected="selected"':'';
echo '<option '.$default.' value="'.$value.'">'.$value."</option>\n";
}
echo '</select>   ';

echo "<select name='year'>";
foreach ($years as $value) {
$default = ($value == $currentYear)?'selected="selected"':'';
echo '<option '.$default.' value="'.$value.'">'.$value."</option>\n";
}
echo '</select>   ';
?>

 

Ken

Some times when "else" is ignored in "if" block, it becomes difficult to find the error in the code quickly.Because it looks to be 100 % correct. But the script wont work.

 

<?php

$months = array ('January', 'February', 'March', 'April', 'May', 'June','July', 'August', 'September', 'October', 'November','December');

$weekday = array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');

$days = range(1,31);

$years = range (2010, 2020);

 

$currentDay = date('d');

$currentMonth = date('F');

$currentYear = date('Y');

 

echo "<select name='weekday'>";

foreach($days as $valued) {

 

if($valued == $currentDay)

{

  $default = 'selected="selected"';

  echo '<option '.$default.' value="'.$valued.'">'.$valued.'</option>\n';

} else {

  $default='';

  echo '<option '.$default.' value="'.$valued.'">'.$valued.'</option>\n';

}

 

}

echo '</select> ';

 

 

echo "<select name='month'>";

 

foreach($months as $valuem) {

 

if($valuem==$currentMonth)

{

  $default1 = 'selected="selected"';

  echo '<option '.$default1.' value="'.$valuem.'">'.$valuem.'</option>\n';

} else {

  $default1 = '';

  echo '<option '.$default1.' value="'.$valuem.'">'.$valuem.'</option>\n';

}

   

} echo '</select>   ';

 

echo "<select name='year'>";

 

foreach ($years as $valuey) {

 

    if($valuey == $currentYear)

    {

      $default2 = 'selected="selected"';

      echo '<option '.$default2.' value="'.$valuey.'">'.$valuey.'</option>\n';

    } else {

$default2 = '';

echo '<option '.$default2.' value="'.$valuey.'">'.$valuey.'</option>\n';

    }

   

}  echo '</select>   ';

?>

 

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.