【问题标题】:How to get Dropdown to return text value instead of index value如何让下拉菜单返回文本值而不是索引值
【发布时间】:2018-05-18 17:42:56
【问题描述】:

我目前正在处理我的表单中的下拉菜单,它正在返回索引值,例如选择框时为 0,1,2。我需要它在框中返回文字文本,例如'服务器一','服务器二'。我正在使用 laravel 集体表格。附上表格的代码sn-p。任何帮助将非常感激!变量 $statuses 是数据库中所有服务器的列表。

@extends('layouts.app')

@section('content')
    <h1></h1>
    <h1>Edit Incident</h1>

    {!! Form::open(['action' => ['IncidentsController@update', $incident->id], 'method' =>'POST']) !!}
        <div class="form-group">
            {{Form::label('title','Title')}}
            {{Form::text('title',$incident->title,['class' => 'form-control', 'placeholder' => 'Title'])}}
            {{Form::label('body','Body')}}
            {{Form::textarea('body',$incident->body,['id' => 'article-ckeditor','class' => 'form-control', 'placeholder' => 'Body text'])}}
            {{Form::label('status','Server Status:')}}
            <br>
            {{Form::label('status','Resolved:')}}
            {{Form::radio('status', 'Resolved' , false) }}
            <br>
            {{Form::label('status','Unresolved:')}}
            {{Form::radio('status', 'Unresolved' , true) }}
            <br>
            {{ Form::label('server', 'Server:') }}
            <br/>
            {{Form::select('server', $statuses),['name' => "server",'class' => 'form-control']}}

        </div>
        {{Form::hidden('_method', 'PUT')}}
        {{Form::submit('Submit', ['class' => 'btn btn-primary'])}}
    {!! Form::close() !!}
    dd($server)
@endsection

创建事件:

public function createIncident(){
        $statuses = Status::pluck('server');
        dd($statuses);
        return view('createIncident', ['statuses' => $statuses]);
}

result of dd($statuses)

【问题讨论】:

  • 我不知道 laravel,但我猜它使用数组的键作为选项的值?也许使用服务器的名称作为 $statuses 数组的键可能会解决它?
  • 如果您想继续使用Form::,您需要提供$statuses = ['server one' =&gt; 'server one'];
  • @Kyslik 我必须为每台服务器都这样做吗?问的原因是因为随着时间的推移会增加很多服务器
  • 你需要写一段代码来生成数组。
  • $statuses 是一个数组,我将使用方法调用中的代码以及 die 和 dump 的结果来更新问题

标签: php mysql laravel visual-studio-code


【解决方案1】:

最终改变了我显示和存储表单本身并使用选择标签来修复它的方式。

   <select name="server">
       @foreach($statuses as $key => $value)
           <option>{{$value}}</option>
       @endforeach
   </select>

【讨论】:

  • &lt;option&gt; 没有值属性?
  • 不需要它,我不知道确切的原因,但我会假设它是因为当我执行 $key => $value 时,它​​会自动将 $value 存储为 value 属性。奇怪的是,如果我添加了一个 value 属性,它实际上会破坏它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-02
  • 1970-01-01
  • 1970-01-01
  • 2021-12-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多