Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么不选择当前年度? 函数ddY(){ 对于($i=1900;$i_Php_Html_Select_Option - Fatal编程技术网

Php 为什么不选择当前年度? 函数ddY(){ 对于($i=1900;$i

Php 为什么不选择当前年度? 函数ddY(){ 对于($i=1900;$i,php,html,select,option,Php,Html,Select,Option,获取选定值的最佳方法是: 我使用的是非连接方法: <select name="year"><?=ddY()?></select> function ddY(){ for($i=1900;$i<=date('Y');$i++) $arr[] = $i; $arr = array_reverse($arr); foreach($arr as $year){ if($y

获取选定值的最佳方法是: 我使用的是非连接方法:

<select name="year"><?=ddY()?></select>  


function ddY(){
        for($i=1900;$i<=date('Y');$i++)
        $arr[] = $i;
        $arr = array_reverse($arr);
        foreach($arr as $year){ 
         if($year == date('Y')) {
         echo '<option value="'.$year.'" selected="selected">'.$year.'</option>';

         } else {
            echo '<option value="'.$year.'">'.$year.'</option>';
        }



        //echo'<option value="'.$year.'">'.$year.'</option>'; 
    } 
    }

获取选定值的最佳方法是: 我使用的是非连接方法:

<select name="year"><?=ddY()?></select>  


function ddY(){
        for($i=1900;$i<=date('Y');$i++)
        $arr[] = $i;
        $arr = array_reverse($arr);
        foreach($arr as $year){ 
         if($year == date('Y')) {
         echo '<option value="'.$year.'" selected="selected">'.$year.'</option>';

         } else {
            echo '<option value="'.$year.'">'.$year.'</option>';
        }



        //echo'<option value="'.$year.'">'.$year.'</option>'; 
    } 
    }

我怀疑您正试图按照您发布的问题在屏幕上“如图所示”运行代码,它将在调用未定义函数ddY()时对“未定义函数”生成一个错误。

将你的函数包装在
中,它就会工作。这就是我怀疑正在发生的事情

重新格式化的代码:(已测试)

输出:

2013
2012
2011
2010
2009
2008
2007

等等。我怀疑您正试图按照您发布的问题在屏幕上“如图所示”运行代码,它将生成一个错误,指向“未定义函数”,如调用未定义函数ddY()

将你的函数包装在
中,它就会工作。这就是我怀疑正在发生的事情

重新格式化的代码:(已测试)

输出:

2013
2012
2011
2010
2009
2008
2007

等等。它应该可以完全正常工作。这不是答案-只是建议重写两个循环:

<select name="year">
<option value="2013" selected="selected">2013</option>
<option value="2012">2012</option>
<option value="2011">2011</option>
<option value="2010">2010</option>
<option value="2009">2009</option>
<option value="2008">2008</option>
<option value="2007">2007</option>

输出:

<select name="year">
    <?php
        $currentYear = (int)date('Y');
        for ($i = $currentYear; $i >= 1900; $i--) {
            echo '<option value="' . $i . '"' . ($i == $currentYear ? ' selected="selected"' : '') . '>' . $i . '</option>';
        }
    ?>
</select>

2013
2012
2011
2010
...
1903
1902
1901
1900

它应该可以完全正常工作。这不是答案,只是建议重写两个循环:

<select name="year">
<option value="2013" selected="selected">2013</option>
<option value="2012">2012</option>
<option value="2011">2011</option>
<option value="2010">2010</option>
<option value="2009">2009</option>
<option value="2008">2008</option>
<option value="2007">2007</option>

输出:

<select name="year">
    <?php
        $currentYear = (int)date('Y');
        for ($i = $currentYear; $i >= 1900; $i--) {
            echo '<option value="' . $i . '"' . ($i == $currentYear ? ' selected="selected"' : '') . '>' . $i . '</option>';
        }
    ?>
</select>

2013
2012
2011
2010
...
1903
1902
1901
1900
以下是代码:

<select name="year">
    <option value="2013" selected="selected">2013</option>
    <option value="2012">2012</option>
    <option value="2011">2011</option>
    <option value="2010">2010</option>
    ...
    <option value="1903">1903</option>
    <option value="1902">1902</option>
    <option value="1901">1901</option>
    <option value="1900">1900</option>
</select>
以下是代码:

<select name="year">
    <option value="2013" selected="selected">2013</option>
    <option value="2012">2012</option>
    <option value="2011">2011</option>
    <option value="2010">2010</option>
    ...
    <option value="1903">1903</option>
    <option value="1902">1902</option>
    <option value="1901">1901</option>
    <option value="1900">1900</option>
</select>

2013
对我来说。到底是什么问题?作为旁注:您还可以向后走,避免第二个foreach循环,如:
for($i=date('y');$i>=1990;--$i){}
。你试过看吗?@AmalMurali,是否选择了
2013
?难以置信。我尝试了数百次,清除缓存…对我有效:,单击run,它将显示运行时发生的情况。
2013
对我来说。具体问题是什么?作为旁注:你也可以后退,避免第二个foreach循环,如:
for($i=date('y');$i>=1990;--$i){}
。你试过找吗?@AmalMurali,2013
被选中了吗?难以置信。我试过几百次,清除缓存…对我来说很有效:,单击“运行”,它将显示运行时发生的情况。