仅选择多个传递请求中的最后一个选定值

时间:2017-11-24 08:07:07

标签: php html forms laravel jquery-select2

我有一个select2字段,它接受多个属性:

<div class="col-lg-5 m-input--solid">
    <select class="form-control m-select2 m-input--solid" id="m_select2_3" name="collegeCourses" multiple>
        @foreach($courseCategories as $courseCategory)
        <optgroup label="{{$courseCategory}}">
            @foreach($courseNames->$courseCategory as $courseName)
            <option value="{{$courseName}}" >
                {{$courseName}}
            </option>
            @endforeach
        </optgroup>
        @endforeach
    </select>
</div>

请注意,我在选择表单中指定了multiple

示例输入: enter image description here

但是$ request只有最后选择的值! enter image description here

还手动检查还显示$ request只有最后一个值

$input = Input::all();
$roles = $input["collegeCourses"];
echo $roles; //output: Mrs. Eldora Blick

这里出了什么问题?

3 个答案:

答案 0 :(得分:1)

问题在于:

<select class="form-control m-select2 m-input--solid" id="m_select2_3" name="collegeCourses" multiple>

你必须将名称传递给如下数组:

collegeCourses[]

这样它就可以接受多个选定的值。您可以使用foreach()循环来获取这些值:

foreach($collegeCourses as $course)
{
  // do what you want here
}

答案 1 :(得分:0)

只需将[]添加到元素的名称中,使其成为collegeCourses [],可以视为数组。

答案 2 :(得分:0)

使用带有名称属性的方括号

name="collegeCourses[]"