2016-09-27 6 views
6

Laravel Formファサードと組み合わせてbootstrap-select.jsを使用する場合、値は送信されません。bootstrap-select.js&Laravelフォームファサード - 選択しない "値"

{!! Form::select('user', $users, null) !!}

それが動作:dd()がnull

{!! Form::select('user', $users, null, array('class' => 'selectpicker show-tick', 'data-live-search' => 'true', 'id' => 'user_select')) !!}

は、ブートストラップ-選択し、このようにせずにフォームのファサードを使用している場合しかし、言います。

Input::get('id_of_your_input'); 

と使用していないあなたは、このようにそれを行う必要があります選択ブートストラップ:

dd()は1

+0

あなたは 'dd()'を何ですか? –

+0

'dd($ request-> user);' – Scarwolf

+0

あなたのフォームのポストを確認してください、私はid =>値が選択されたユーザーを設定すると仮定しますか?おそらく何かそこに間違いがあります。 – ree

答えて

3

ブートストラップの選択を使用する場合は、あなたが好きな入力がフェッチすべきであると言う

Input::get('name_of_your_input'); 

Cozブートストラップ・セレクトは、新しい名前(元の入力IDから抽出された)で送信される別の入力を作成します :)

更新 dd(Input::all())を使用して、コントローラに送信されたすべての入力を名前で見ることができます。あなたの例

+0

ああ! 'Request $ request'を使って' $ request-> user'を取り出しています。 'Input ::'なしでこのような名前を取得することは可能ですか? – Scarwolf

+0

まあ 'dd(Input :: get( 'user_select'));'はまだ 'ヌル 'と言っています。これは私が現在選択している方法です: '{!! Form :: select( 'user'、$ users、null、array( 'class' => 'show-tick'、 'data-live-search' => 'true'、 'id' => 'user_select')) !!} ' – Scarwolf

+0

' dd(Input :: all()) 'を試して、あなたのコントローラに送信されたすべての入力をその名前と共に見ることができます。 :) – hamedmehryar

0

最も簡単な再現:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script> 

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 

<link href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.11.2/css/bootstrap-select.min.css"/> 
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.11.2/js/bootstrap-select.min.js"></script> 

{!! Form::open() !!} 
    <select class="selectpicker show-tick" data-live-search="true" name="user"> 
     <option value="1">Marvin Test</option> 
     <option value="2">Lorem Ipsum</option> 
     <option value="3">Amy Johnson</option> 
     <option value="4">sdsd</option> 
     <option value="5">lol lol</option> 
     <option value="6">test test</option> 
    </select> 
    {!! Form::submit() !!} 
{!! Form::close() !!} 

dd($request->all()が与える:

array:2 [▼ 
    "_token" => "GPsRkSn3GVK3zWZmJ2Rf7rQlZ75WVZ2c1JxHZgjy" 
    "user" => "6" 
] 

トークン隠しフィールドが自動的に追加されます。だから私はあなたがForm::openForm::closeの間にいるかどうかをコメントで尋ねたのです。

+0

私は 'Form :: token()'を削除しました。それでもユーザーは転送されません。これは、 'form :: select()'とbootstrap-selectとの組み合わせで可能でしょうか?どのようにユーザーの配列でそれをよりうまくやり遂げることができますか? – Scarwolf

+0

私は可能な限り簡単な方法で選択を書こうとしました:http://pastebin.com/RRXUdNnhでもデータは送信されません。 – Scarwolf

+0

@Scarwolf最初に貼り付けたHTMLは、ページソースから取得されたか、実際にはブラウザの現在の状態をDOMで調べましたか? – alepeino

関連する問題