Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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 将数字间隔替换为文本间隔_Php_Laravel_Text_Intervals - Fatal编程技术网

Php 将数字间隔替换为文本间隔

Php 将数字间隔替换为文本间隔,php,laravel,text,intervals,Php,Laravel,Text,Intervals,我一直在为一家公司编辑和清理会计应用程序上的代码。当用户注册时,他们会告诉我们检查其帐户以获取新信息的频率。目前,它使用一个数字下拉列表,根据他们注册的日期,列出1到30天。代码如下 <div class="{{ $class }}"> <label for="syst_interval">How often do you want us to scan your account?</label>

我一直在为一家公司编辑和清理会计应用程序上的代码。当用户注册时,他们会告诉我们检查其帐户以获取新信息的频率。目前,它使用一个数字下拉列表,根据他们注册的日期,列出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>

您希望我们多久扫描一次您的帐户?
选择值

@对于($i=0;$i),既然您的选项已经基于数值,为什么不直接写出选项呢

<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>

选择值
value=“7”>每周
value=“28”>每月
可用的选项都是硬编码的,for循环只是为了方便起见,不需要任何花哨的东西:)

如果你真的不喜欢这样,只需定义一个数组,然后在上面进行foreach,比如:

<?php
   $options = array(0 => 'Choose a value', 1 => 'Every day', 7 => 'every Week', 14 => 'every fortnight', '28' => 'every month');
?>

<select name="syst_interval" id="syst_interval" class="form-control">

<?php
   foreach($options as $key => $text)
   {
     echo '<option value="' . $key . '"';
     print $key == $value ? ' selected="selected"' : '';
     echo '>' . $text . '</option>';
    }
?>
</select>

由于您已经有了一个“人工定义”的间隔,您必须将选项硬编码到视图中,因此:

<select name="syst_interval" id="syst_interval" class="form-control">
   <option value="0">Select value</option>
   <option value="1" <?= ( $value == 1 ) ?'selected':'' ?>  >Everyday</option>
   <option value="7" <?= ( $value == 7 ) ?'selected':'' ?>  >Every week</option>
   <option value="14" <?= ( $value == 14 ) ?'selected':'' ?>  >Every forthnight</option>
   <option value="28" <?= ( $value == 28) ?'selected':'' ?>  >Every month</option>
</select>

选择值
>每周
>每月

出于某种原因,我原以为这会更复杂。我没有想过写下选项。。。!