使用for循环的下拉菜单不会在下拉列表中保留值

时间:2015-01-09 14:16:21

标签: php drop-down-menu laravel-4

您好我正在使用laravel 4开发一个应用程序,我有一个下拉菜单,使用每个循环生成值,这里的问题是一次如果我选择一个值并保存表单值保存在数据库但是当我尝试编辑相同它保留默认值所以我的问题是如何保留以前选择的下拉值?

这是我的代码,请看一下

<form class="form-horizontal" method="post" action="" autocomplete="off">
<div class="form-group {{ $errors->has('last_closing_financial_year') ? 'has-error' : '' }}">
    <label class="control-label" for="last_closing_financial_year">Enter the Last Closing Financial Year</label>
        <div class="controls">
            <?php
                $years = array();
                for ($i = 1980; $i < 2050; $i++)
                {                       
                  $years[] = $i;
                } 
                echo '<select name="last_closing_financial_year" class="controls assettext select2 selectyear" id="last_closing_financial_year" >';
                echo '<option value="">-- Select Year --</option>';
                foreach($years as $option)
                {
                    echo "<option value='{$option}'";
                    $optionprev= $option+1;
                    echo ">{$option}-{$optionprev}</option>";   
                }  
                echo "</select>"."&nbsp;(On or Before User cannot Calculate this Year)";    
            ?>
        </div>  
        {{ $errors->first('last_closing_financial_year', '<span class="alert-msg"><i class="icon-remove-sign"></i> :message</span>') }}
</div>
<button type="submit" class="btn-flat success"><i class="icon-ok icon-white"></i>save </button>
</form>

如果您需要,请告诉我......

我尝试过这个问题的许多重复但没有任何效果。

我也试过这个没有运气

$selected = "-- Select Year --";
foreach($years as $option)
{
     if($selected == $option){
      echo "<option selected='selected' value='$option'>$option</option>" ;
     }                                               
     else{
      echo "<option value='$option'>$option</option>" ;
     }
}

提前致谢.........

2 个答案:

答案 0 :(得分:0)

在您的控制器中:

// Create Select Values Array
$years = ['' => '-- Select a Year --'] + array_combine(range(1980, 2050), range(1980, 2050));

// Set default last closing year to last year
$defaultYear = Carbon::now()->subYear()->format('Y');

在您看来:

{{ Form::select('last_closing_financial_year', $years, Input::old('last_closing_financial_year', $defaultYear)) }}

答案 1 :(得分:0)

希望这个适合你

在您的控制器中:

$years = array();
for($i = 1980;$i<= 2050;$i++)
{
$before["$i"] = $i;
$nextyear["$i"] = $i + 1;   
$years["$i"] = $before["$i"] .(- $nextyear["$i"]);  //to show as 1980-1981 in your dropdown
}

在您的视图页面

{{ Form::select('last_closing_financial_year', [null => '-- Select Year --'] + $years , Input::old('last_closing_financial_year', $setting->last_closing_financial_year)) }}