php foreach正在列出而不是列出列表

问题描述 投票:-1回答:2

我想将本年度开始的年份列表拖放到另外8年,但它正在列出它们。我无法从下拉列表中选择年份,因为它们都已列出。我希望他们下拉列表,以便从列表中选择我想要的那个。

<?php
class BirthYear
{
    public function year(){
        $years = array(date("Y"));
        foreach($years as $year){
            for($i=0; $i < 8; $i++){
                $y = $year++;
                echo $y."<br>";
            }
        }
    }
}

$y = new BirthYear();
//echo $y->year();
?>
<html>
<style>
    label {
        font-size: 1rem;
        padding-right: 10px;
    }

    select {
        font-size: .9rem;
        padding: 2px 5px;
    }
</style>
<select name="birthYear" id="birthYear-select">
    <option value="">Please choose an option</option>
    <option value=""><?php echo $y->year();?></option>
</select>
</html>
php dropdown
2个回答
0
投票

您在这里走! year()函数现在返回从当前年份到下一个8年的年份。您没有遍历数组,甚至没有返回year()的任何东西,这导致它为null。

<?php
class BirthYear
{
    public function year()
    {
        $current_year = date("Y");
        $target_year = $current_year + 8;
        $years = array();
        do {
            array_push($years, $current_year);
            $current_year++;
        } while ($target_year >= $current_year);

        return $years;
    }
}

$y = new BirthYear();
$years = $y->year();
?>

<select name="birthYear" id="birthYear-select">
    <option value="">Please choose an option</option>
    <?php foreach ($years as $year) { ?>
        <option value="<?php echo $year; ?>"><?php echo $year; ?></option>
    <?php } ?>
</select>

0
投票

使用类似这样的内容:

<?php
class BirthYear
{
    public function year(){
        $y = array();
        $year = date("Y");
        for($i=0; $i < 8; $i++){
            $y[] = $year++;
        }
        return $y;
    }
}

$y = new BirthYear();
?>
<html>
<style>
    label {
        font-size: 1rem;
        padding-right: 10px;
    }

    select {
        font-size: .9rem;
        padding: 2px 5px;
    }
</style>
<select name="birthYear" id="birthYear-select">
    <option value="">Please choose an option</option>
    <?php foreach($y->year() as $year) {
        echo "<option value=\"$year\">$year</option>\n";
    }
    ?>

</select>
</html>
© www.soinside.com 2019 - 2024. All rights reserved.