获取多选下拉框的选中元素

Get selected elements of a multiple selection dropdwon box

如何在多个 selection 下拉列表中获取 selected 选项列表。我在这里使用这个 jQuery 插件:searchable-option-list

我试过这个但是没有给select它。只有第一个值被记录在数据库中。我想保存所有 selected 值的集合。 这是 jquery 脚本:

<script type="text/javascript">
                $(function() {
                    $('#companytype').searchableOptionList();
                });

                var items = [];
                $('#companytype option:selected').each(function(){ items.push($(this).val()); });
                var result = items.join(', ');
                console.log(result);
            </script>

这是多个select:

<select name="companytype" id="companytype" class="mid first-input-div" multiple="multiple">
                                <optgroup label="UPSTREAM">
                                    <option value="Peter">Peter Griffin</option>
                                    <option value="Lois">Lois Griffin</option>
                                    <option value="Chris">Chris Griffin</option>
                                    <option value="Meg">Meg Griffin</option>
                                    <option value="Stewie">Stewie Griffin</option>
                                </optgroup>

                                <optgroup label="MID-STREAM">
                                    <option value="Cleveland">Cleveland Brown</option>    
                                    <option value="Joe">Joe Swanson</option>    
                                    <option value="Quagmire">Glenn Quagmire</option>    
                                </optgroup>

                                <optgroup label="DOWNSTREAM">
                                    <option value="Oil and transportation">Oil and transportation</option>    
                                    <option value="Bunkering">Bunkering</option>    
                                    <option value="Brokering">Brokering</option>    
                                </optgroup>    
                            </select>

我正在使用Laravel,这是插入代码:

public function store(CompanyRequest $companyRequest)
    {
       $company = new Company;

       if($companyRequest->isMethod('post')){

       $company->user_id        = Auth::user()->id;
       $company->companyname    = $companyRequest->companyname;
       $company->companytype    = $companyRequest->companytype;

       $company->save();
       return redirect()->route('companyindex')->with('message', 'Your question has been posted.');
       }else{
            return redirect('company-create')->withErrors($companyRequest)->withInput();
        }
    }

我想您需要将 name="companytype" 更改为 name="companytype[]"。将元素转换为数组,因为这里的选择是多重的。并在您的服务器脚本中检索相同的内容,request in array format 内爆一些字符串针,然后将其插入数据库。

我相信,你的PHP改变应该是这样的。 (改为数组后)

$company->companytype    = $companyRequest->companytype;

把上面的语句改成

$company->companytype    = implode(",",$companyRequest->companytype);

这应该对你有帮助。