-1

以下のコードでドロップダウン リストを作成しましたが、ページの最初の読み込み時にデフォルトの選択肢を設定したい (つまり、最初のオプション セットではなく、最新の日付を表示する)。これどうやってするの?

<?php
$startyear = ""; 
$startmonth = "";
$startday = "";
$endyear = "";
$endmonth = "";
$endday = "";

$year  = range(1998,2012);
$month = range(01,12);
$day   = range(01,31);

if($_SERVER['REQUEST_METHOD']=='POST')
{
    foreach($_POST as $key=>$value)
    {
        if(is_numeric($value))
        {
            $$key = $value;
        }
    }
}

?>

フォーム素材はこちら

<form name='update' action='' method='POST'>
Start: <select name='startyear'>
    <?php foreach(array_reverse($year) as $y):?>
    <option value="<?php echo $y?>"<?php echo((isset($startyear) && $startyear == $y)?' selected':null)?>><?php echo $y?></option>
    <?php endforeach;?>
</select>
<select name='startmonth'>
    <?php foreach($month as $m): $m = str_pad($m, 2, "0", STR_PAD_LEFT);?>
    <option value="<?php echo $m;?>"<?php echo ((isset($startmonth) && $startmonth == $m)?' selected':null)?>><?php echo $m;?></option>
    <?php endforeach;?>
</select>
    <select name='startday'>
    <?php foreach($day as $d): $d = str_pad($d, 2, "0", STR_PAD_LEFT);?>
    <option value="<?php echo $d;?>"<?php echo ((isset($startday) && $startday == $d)?' selected':null)?>><?php echo $d;?></option>
    <?php endforeach;?>
</select>
<input type='submit' value='View'/>
</form>
4

3 に答える 3

2
if($_SERVER['REQUEST_METHOD']=='POST')
{
    ...
} else {
    // Set your defaults here.
}
于 2012-07-11T18:51:54.783 に答える
1

これはあなたが欲しいですか?

$cur_day  = date('j');
$cur_mon  = date('n');
$cur_year = date('Y');

次に、オプションループ内で次のようにします

if($y == $cur_year) echo 'selected';

現在の年がデフォルトで選択されます。月と日についても同じことを行います。

于 2012-07-11T18:58:13.307 に答える
1

選択されているかどうかのチェックは次のように行われるため:

<?php echo ((isset($startday) && $startday == $d)?' selected':null)?>

変数をデフォルト値で定義するだけです。変数は空です!

$startyear = ""; 
$startmonth = "";
$startday = "";
$endyear = "";
$endmonth = "";
$endday = "";
于 2012-07-11T18:53:21.527 に答える