【问题标题】:Get selected elements of a multiple selection dropdwon box获取多选下拉框的选定元素
【发布时间】:2016-07-06 11:38:09
【问题描述】:

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

我已经尝试过了,但没有选择它。只有第一个值被记录在数据库中。我想保存所有选定值的集合。 这是 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 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();
        }
    }

【问题讨论】:

  • 你能添加一些,html和你的数据库插入试试吗?
  • 谢谢。我已经充实了。

标签: javascript jquery arrays drop-down-menu multipleselection


【解决方案1】:

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

我相信,您的 PHP 更改应该是这样的。 (改成数组后)

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

把上面的语句改成

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

这应该对你有帮助。

【讨论】:

  • 感谢您的支持,当我这样做时,它给出了错误:Cannot use [] for reading
  • 非常感谢!您明智的指导性专业建议挽救了我的一天。谢谢。上帝保佑。我只删除数组符号。 $company-&gt;companytype = implode(",",$companyRequest-&gt;companytype);
  • 不客气,@kehinde,我不知道,laravel 是如何支持数组元素请求的,就像普通请求一样,使用 [] 可能会解决问题。如果您知道对数组元素的请求,请将其更新到社区,以便它有用。谢谢:)
猜你喜欢
  • 1970-01-01
  • 2016-08-28
  • 2016-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-23
  • 1970-01-01
相关资源
最近更新 更多