繁体   English   中英

如何从多选输入中获取所有选定的值?

[英]How to get all the selected values from a multiselect input?

我正在使用 Laravel 并尝试使用die(var_dump('$request->input('users'))); 检查使用多选输入选择的数据。 当我选择所有 3 个用户时,输出只是显示最后一个用户 ID,如下所示

array(1) {
  [0]=>
  string(1) "3"
}

这是输入。 名称设置为user[0]因为输入可以是多个,这取决于用户需要多少个多选输入

<select class="form-control user" id="user" name="user[0]" multiple="">
    @foreach ($users as $user)
        @if (old('user') == $user->id)
            <option value="{{ $user->id }}" selected="">{{ ucwords($user->name) }}</option>
        @endif
    @endforeach
</select>

下面这个如果来自控制器

$users = array();
$user = $request->input('user');
$user = implode(',', $user);

您应该将输入名称设置为将元素添加到数组的语法:

 name="user[]"

然后你会从$request->input('user', []);得到你的数组$request->input('user', []);

如果您有多个不同的选择,您可以根据需要在其中使用索引:

 name="user[0][]"
 name="user[1][]"

您已将输入字段设为数组。

刀片.php文件

<select class="form-control user" id="user" name="user[]" multiple="">
    @foreach ($users as $user)
        @if (old('user') == $user->id)
            <option value="{{ $user->id }}" selected="">{{ ucwords($user->name) }}</option>
        @endif
    @endforeach

</select>

控制器

$users = array();
$users = $request->input('user',[]);
$users = implode(',', $users);

为什么在这里将数组转换为字符串$users = implode(',', $users); ?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM