我在这里有这个选择:
{!! Form::open(['action' => 'ProductController@products', 'method' => 'post']) !!}
{!! Form::select('product_id', $products) !!}
{!! Form::close() !!}
$ products variable:
$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的按钮,如果它被klicked打开模型。
我在Javascript中的知识很小,可以创建这个,也许有另一种方法,但我还没找到。
感谢您的帮助!
答案 0 :(得分: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', 'ControllerName@getData');
//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]);
}
希望你能从中获得灵感。这样你只有一个模态。
答案 1 :(得分:0)
在Laravel之类的MVC framework中,你不应该使用你的模型来格式化你的输出。这是观点的工作。
此代码应位于视图中,并使用Javascript在控制器中调用方法。您无法使用Javascript调用模型。