我一直在编辑和清理我工作的公司的会计应用程序上的代码。当用户注册时,他们会告诉我们检查其帐户的新信息的频率。目前,它根据注册日期使用1到30天的数字下拉列表。代码如下。
<div class="{{ $class }}">
<label for="syst_interval">How often do you want us to scan your account?</label>
<?php $value = ($user->syst_settings->syst_interval) ?: Input::old('syst_interval'); ?>
<select name="syst_interval" id="syst_interval" class="form-control">
<option value="0">Select value</option>
@for( $i=0; $i<30; $i++ )
<?php if( $value == ($i+1) ) $selected = 'selected'; else $selected = false; ?>
<option value="{{$i+1}}" {{$selected}}>{{$i+1}}</option>
@endfor
</select>
@if( $errors->has('syst_interval') )
@foreach( $errors->get('syst_interval') as $error )
<span class="help-block">{{ $error }}</span>
@endforeach
@endif
</div>
我们想要做的是将间隔更改为以下选项:每天(1),每周(7),每两周(14)和每月(28)。 最好的方法是什么?我意识到,如果没有对某些代码进行重大改进,这可能是不可能的。 感谢
答案 0 :(得分:0)
由于您的选项已基于数值,为什么不写出选项?
tuple
无论如何,可用的选项都是硬编码的,for循环只是为了方便,不需要任何花哨的动态东西:)
如果你真的讨厌这种方式,那就定义一个数组并对其进行预测,例如:
<select name="syst_interval" id="syst_interval" class="form-control">
<option value="0">Select value</option>
<option<?php if($value == 1) echo ' selected="selected"' ?> value="1">Every day</option>
<option<?php if($value == 7) echo ' selected="selected"' ?> value="7">Every week</option>
<option<?php if($value == 14) echo ' selected="selected"' ?> value="14">Every fortnight</option>
<option<?php if($value == 28) echo ' selected="selected"' ?> value="28">Every month</option>
</select>
答案 1 :(得分:0)
由于您已经有了“人为定义的”间隔,因此您必须将选项硬编码到视图中:
;