0

Как получить список выбранных параметров в раскрывающемся списке выбора. Я использую этот плагин jQuery здесь: searchable-option-listПолучить выбранные элементы многократного выделения dropdwon box

Я пробовал это, но не дал его выбрать. Только первое значение регистрируется в db. Я хочу сохранить коллекцию всех выбранных значений. Это 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(); 
     } 
    } 

MySQL DB record

+0

Не могли бы вы добавить некоторые, html и ваши вставки db try out? – ameenulla0007

+0

Спасибо. Я скрепил его. – kehinde

ответ

1

я думаю, вам нужно изменить name="companytype" на name="companytype[]". преобразовать элемент в массив, так как выбор здесь несколько. и получить то же самое в своем сценарии сервера, request in array format взорвать некоторую строчную иглу, а затем вставить ее в базу данных.

Я верю, что ваше изменение PHP должно быть чем-то вроде этого. (после изменения в массиве)

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

изменения выше заявление

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

это должно помочь вам.

+0

Цените свою поддержку, когда я это сделал, она дает ошибку, как указано: 'Невозможно использовать [] для чтения' – kehinde

+0

Спасибо! Ваш мудрый поучительный профессиональный совет спас мой день. Благодарю. Бог благословил. Я удаляю только символы массива. '$ company-> companytype = implode (", ", $ companyRequest-> companytype);' – kehinde

+0

вы всегда приветствуетесь, @kehinde, я понятия не имею, как laravel поддерживает запрос элемента массива, который считается нормальным запросом, использование '[]' может решить проблему. если вы знаете запрос на элемент массива, обновите его до сообщества, чтобы он мог быть полезным. Благодаря :) – ameenulla0007