【问题标题】:Laravel form with multiple select didn't send all selected data when submit具有多项选择的 Laravel 表单在提交时未发送所有选定的数据
【发布时间】:2018-02-26 09:53:45
【问题描述】:

我有 Laravel 表单,其中包含许多包含许多数据的多个选择元素。例如:

  • 酒店选择(600 选项)
  • 餐厅选择(800 选项)
  • SPA 选择(200 选项)
  • 景点选择(150 个选项)
  • 网点选择(500 选项) 如果我在所有输入中选择所有选项,则在控制器中检查 请求 (Outlets) 项目只有 200 个选项 如何解决这个问题?如何获取从此表单发送的所有数据? Laravel 中是否有任何表单数据大小?

这是我的表单代码:

                    <div class="row">
                        <div class="panel panel-white">                
                            <div class="panel-body">
                                <div class="col-md-12 col-sm-12">
                                    <div class="form-group">
                                        {{ Form::label('hotels', __('membership::main.hotels')) }}
                                        {{ Form::select('hotels', $hotels, null, array('multiple'=>'multiple','name'=>'hotels[]', 'class' => 'multiselect form-control')) }}
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>                        
                    <div class="row">
                        <div class="panel panel-white">                
                            <div class="panel-body">
                                <div class="col-md-12 col-sm-12">
                                    <div class="form-group">
                                        {{ Form::label('outlets', __('membership::main.outlets')) }}
                                        {{ Form::select('outlets', $outlets, null, array('multiple'=>'multiple','name'=>'outlets[]', 'class' => 'multiselect form-control')) }}
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="row">
                        <div class="panel panel-white">                
                            <div class="panel-body">
                                <div class="col-md-12 col-sm-12">
                                    <div class="form-group">
                                        {{ Form::label('airports', 'Airport & Lounges') }}
                                        {{ Form::select('airports', $airports, null, array('multiple'=>'multiple','name'=>'airports[]', 'class' => 'multiselect form-control')) }}
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="row">
                        <div class="panel panel-white">                
                            <div class="panel-body">
                                <div class="col-md-12 col-sm-12">
                                    <div class="form-group">
                                        {{ Form::label('beauty', 'Beauty & Fitness') }}
                                        {{ Form::select('beauty', $beauty, null, array('multiple'=>'multiple','name'=>'beauty[]', 'class' => 'multiselect2 form-control')) }}
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="row">
                        <div class="panel panel-white">                
                            <div class="panel-body">
                                <div class="col-md-12 col-sm-12">
                                    <div class="form-group">
                                        {{ Form::label('attractions', 'Activities & Attractions') }}
                                        {{ Form::select('attractions', $attractions, null, array('multiple'=>'multiple','name'=>'attractions[]', 'class' => 'multiselect2 form-control')) }}
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="row">
                        <div class="panel panel-white">                
                            <div class="panel-body">
                                <div class="col-md-12 col-sm-12">
                                    <div class="form-group">
                                        {{ Form::label('restaurants', 'Restaurant & Bars') }}
                                        {{ Form::select('restaurants', $restaurants, null, array('multiple'=>'multiple','name'=>'restaurants[]', 'class' => 'multiselect3 form-control')) }}
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>

我正在使用这个库来处理多选功能 https://github.com/davidstutz/bootstrap-multiselect

在控制器中我只是像这样检查数据,我的选择并没有全部提交,它在特定限制下停止但我不知道为什么?

public function store(Request $request)
{   
    dd($request);
}

【问题讨论】:

  • 你为什么不分享你到目前为止所做的事情??
  • 你是什么意思?
  • 我的意思是你的数据库架构、模型、控制器、查看代码任何可以帮助其他人更好地理解你的问题的东西
  • 我添加了我使用的代码,请检查

标签: php forms laravel multi-select


【解决方案1】:

有这么多选择并不理想!但是,我建议你看看你的控制器。您可能对结果进行分页。它也可能与浏览器相关。在我们看到你做了什么或你看到了什么之前,我们无法给你一个准确的答案......只有假设

【讨论】:

  • 我不认为有任何分页,当我 dd($request) 餐厅元素给出 327 值时,它应该是 595。所以我猜想在表单和控制器之间的请求中有些东西。但我不知道如何找到它
  • 你能保证你的数据库有多达 595 个数据吗?您的查询是什么样的?显示你的控制器
猜你喜欢
  • 2015-08-07
  • 1970-01-01
  • 2017-11-27
  • 1970-01-01
  • 1970-01-01
  • 2018-06-16
  • 2021-07-25
  • 1970-01-01
  • 2012-01-29
相关资源
最近更新 更多