2016-03-19 29 views
0

複数選択ドロップダウンで選択したオプションのリストを取得する方法を教えてください。私はここでこのjQueryプラグインを使用しています:searchable-option-list複数選択ドロップダウンボックスの選択要素を取得

私はこれを試しましたが、選択していません。最初の値だけが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挿入試しを追加できますか? – ameenulla0007

+0

ありがとうございます。私はそれをfleshedしました。 – kehinde

答えて

1

あなたはname="companytype"からに変更する必要があると思います。ここでの選択は倍数であるため、要素を配列に変換します。あなたのサーバースクリプトで同じものを取得するには、request in array formatいくつかの文字列needleを暗黙にして、それをデータベースに挿入します。

あなたのPHPの変更はこのようなものでなければならないと思います。 これはあなたを助けるべき

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

から

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

変更上記の文(配列への変更後)。

+0

あなたのサポートを感謝します、私がこれをしたとき、それはsitedとしてエラーを出します: '[]を読むために使うことができません。 – kehinde

+0

ありがとう!あなたの賢明な専門的な助言が私の日を救った。ありがとう。神のご加護を。私は配列シンボルだけを削除します。 – kehinde

+0

あなたはいつも歓迎されています、@kehinde、私は考えていません、どのようにlaravelが配列要素の要求をサポートしているのか、通常のリクエストと同じように考えていますが、 '[]'を使用すると、この問題が解決される可能性があります。もしあなたが配列要素の要求を知っていれば、有用であるようにコミュニティに更新してください。ありがとう:) – ameenulla0007