2016-08-02 31 views
0

私は右ここにこの選択をしている:選択したアイテムを選択してモデルを開きますか? Laravel

{!! Form::open(['action' => '[email protected]', 'method' => 'post']) !!} 
{!! Form::select('product_id', $products) !!} 
{!! Form::close() !!} 

$製品変数:

$products = Products::lists('name', 'id')->toArray(); 

今、私は作業モデルを持っています。私は画像を使って私の他のプロジェクトでこのモデルを使用しました。私が使用したい

その他のプロジェクトモデル:


オープンモデル:

@foreach($themes as $thema) 
     <a style="cursor: pointer" data-toggle="modal" data-target="#{{ $thema->id }}"> 
      <span class="text">{{ $thema->thema }}<br></span> 
     </a> 
@endforeach 

モデル:

@foreach($themes as $thema) 
    <div class="modal fade" id="{{ $thema->id }}" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> 
     <div class="modal-dialog" role="document"> 
      <div class="modal-content"> 
       <div class="modal-header"> 

        // not important 

       </div> 
       <div class="modal-body"> 

       // not important 

       </div> 
      </div> 
     </div> 
    </div> 
@endforeach 

私の問題は、私は「couldnということですモデルを開くにはどうすればいいですか?私が選択したアイテム。選択ボックスのアイテムをクリックすると、モデルがポップアップします。

をクリックするか、product_idを取得してモデルを開くボタンを作成します。

私のJavascriptに関する知識はこれを作成するためには小さいですが、多分別の方法がありますが、まだ見つけられませんでした。

ありがとうございました!

+0

この方法を使用すると、データがdb内で大きくなる場合、ページにモーダルがたくさんあります。 AJAXコールを使用して、モーダルをクリックしてクリックした後にそのコンテンツにデータを挿入するのはなぜでしょうか。 – Michel

+0

私はそれをしたいと思っていますが、JS/AJAXのスキルはそれを実現するには十分ではありません。 – WellNo

+0

私の意見では、AJAXが最良の解決策になるでしょう。クイックで汚れたメソッドは、ページをロードする際にすべてのテーマをJavaScript配列に渡し、モーダルをレンダリングすることです。データトグルリンクをクリックしてモーダルを開くと、リンク内のテーマのIDに基づいて、JavaScript/jQueryでモーダルのコンテンツを更新し、適切なテーマに設定できます。 – piscator

答えて

0

LaravelのようなMVC frameworkでは、あなたの出力をフォーマットするためにモデルを使用すべきではありません。これがビューの仕事です。

このコードはビュー内にあり、Javascriptを使用してコントローラ内のメソッドを呼び出す必要があります。 Javascriptを使用してモデルを呼び出すことはできません。

+0

私は彼がブーツストラップに言及していると思います。モーダルではありませんモデルは – Michel

+0

です。はい、ミシェルはそうです。私はブートストラップモデルについて話しています:) – WellNo

1
//HTML 

@foreach($variable as $fromController) 
    <tr> 
     <td> <a data-id="{{ $fromController->id }}"></a>{{ $fromController->name }} </td> 
    </tr> 
    @endforeach 

    <div class="modal"> 

    </div> 



    //JAVASCRIPT (AJAX) 
//Jquery required 

<script> 
$('a[data-id]').click(function(event) { 
    var val = $(this).attr('data-id'); 

    $.ajax({ 
     url: '/getdata', 
     type: 'POST', 
     dataType: 'json', 
     data: {id: val}, 
     success: function(data){ 
      $('.modal').html(data['value']).modal('show'); 
     } 
    }); 


    return false; 
}); 
</script> 


//Route 

Route::post('/getdata', '[email protected]'); 

//Controller 

public function getData(Request $req){ 
    $get = Model::where('id', $req->input('id'))->first(); 
    //Assuming you have a column named "description" 

    return response()->json(['value' => $get->description]); 
} 

あなたはそれからアイデアを得ることができます。このようにして、あなたは一つのモーダルしか持たない。

+0

私はそれを試してみます、ありがとう:) – WellNo

+0

何が記述になりますか?私はそのようなコラムを持っていません。だから私は代わりにこれを書くことができます:return response() - > json(['value' => $ get]); – WellNo

+0

私は仮定しています。したがって、説明は、値をモーダルに表示する列の名前になります – Michel

関連する問題