0

Wie bekomme ich die Liste der ausgewählten Optionen in mehreren Auswahl Dropdown-Liste. Ich benutze dieses jQuery-Plugin hier: searchable-option-listHolen Sie sich die ausgewählten Elemente einer Multiple-Choice-Dropdwon-Box

Ich habe dies versucht, aber gibt nicht die Auswahl es. Nur der erste Wert wird in der Datenbank protokolliert. Ich möchte die Sammlung aller ausgewählten Werte speichern. Diese ist die jquery Skript:

<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> 

Dies ist mehrere 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> 

ich Laravel verwende, dies ist der Code für die Insertion:

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

Könnten Sie einige, HTML und Ihre db Insertion Try Outs hinzufügen? – ameenulla0007

+0

Danke. Ich habe es ausgearbeitet. – kehinde

Antwort

1

Ich denke, Sie müssen name="companytype" zuändern. wandle das Element in ein Array um, da die Auswahl hier mehrfach ist. und rufen Sie das gleiche in Ihrem Server-Skript, request in array format implodieren einige String-Nadel, und fügen Sie das in die Datenbank ein.

Ich glaube, Ihre PHP-Änderung sollte etwas wie das sein. (nach dem Array Ändern)

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

ändern die obige Aussage zu

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

dies sollte Ihnen helfen.

+0

Schätzen Sie Ihre Unterstützung, wenn ich dies tat, gibt es den Fehler als Standort: 'Kann nicht verwenden [] zum Lesen' – kehinde

+0

Vielen Dank! Dein kluger aufschlussreicher professioneller Rat hat meinen Tag gerettet. Vielen Dank. Gott segne. Ich entferne nur die Array-Symbole. '$ company-> companytype = implode (", ", $ companyRequest-> companytype);' – kehinde

+0

Sie sind immer willkommen, @kehinde, ich habe keine Ahnung, wie Laravel eine Array-Element-Anfrage unterstützt, gedacht als normale Anfrage, Die Verwendung von '[]' kann das Problem lösen. Wenn Sie die Anfrage für ein Array-Element kennen, aktualisieren Sie es bitte in der Community, damit es nützlich sein kann. Vielen Dank :) – ameenulla0007

Verwandte Themen