2016-08-02 1 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 

내 문제는 내가 '나오지 않았어이다 나는 모델을 어떻게 열 수 있는지 알아 낸다. 선택한 항목이 없습니다. 선택 상자에서 항목을 클릭하면 모델이 나타납니다.

또는 product_id를 가져오고 모델이 열리면 모델을 여는 버튼을 만듭니다.

자바에 대한 나의 지식은 이것을 작게 만드는 것이고 어쩌면 또 다른 방법이있을 수 있지만 아직 찾을 수 없습니다.

도움 주셔서 감사합니다.

+0

이 방법을 사용하면 데이터가 db로 커지면 페이지에 모달이 많이 생깁니다. 클릭 한 후 AJAX 호출을 사용하여 해당 내용을 모달 데이터로 채우지 않는 것이 어떻습니까? – Michel

+0

나는 그것을하고 싶지만 JS/AJAX에서의 나의 기술은 그것을 깨닫기에 충분하지 않다. – WellNo

+0

AJAX가 내 의견으로는 최고의 솔루션이 될 것입니다. 빠르고 더러운 방법은 페이지로드시 모든 테마를 JavaScript 배열로 전달하고 모달을 렌더링하는 것입니다. 데이터 토글 링크를 클릭하여 모달을 열면 모달의 콘텐츠를 JavaScript/jQuery로 업데이트하고 링크의 테마 ID를 기반으로 올바른 테마로 설정할 수 있습니다. – piscator

답변

0

Laravel과 같은 MVC framework에서는 출력 형식을 지정하기 위해 모델을 사용하지 않아야합니다. 이것이 견해의 작품입니다.

이 코드는 뷰에 있어야하며 Javascript를 사용하여 컨트롤러에서 메서드를 호출해야합니다. Javascript를 사용하여 모델을 호출 할 수 없습니다.

+0

그가 부츠 스트랩이라고 부르는 것 같아요. 모달이 아니예요. 모델 – Michel

+0

예, Michel이 맞습니다. 부트 스트랩 모델에 대해 말하고 있습니다 :) – 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

관련 문제