【发布时间】:2018-04-19 10:41:43
【问题描述】:
我通常可以使用 Laravel 5.2 从数据库中插入、更新和删除数据。现在我想用 Bootstrap Modal 更新表数据。我的模态视图和表格视图在同一个刀片中。
模态:
<!-- Modal content-->
<div class="modal-content">
@foreach($dataQrDetails as $dataQr)
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Updating {{ $dataQr->winner_name }}</h4>
</div>
<div class="modal-body">
<form class="form-horizontal" role="form" action="{{url('admin/winner/status/'.$dataQr->id)}}" method="POST" enctype="multipart/form-data" id="contactForm">
{{ csrf_field() }}
<input type="hidden" name="chance_of_win" value="Shipped">
<div class="form-body">
<div class="form-group">
<label class="col-md-3 control-label">Text Input</label>
<div class="col-md-9">
<div class="input-icon">
<i class="fa fa-archive" aria-hidden="true"></i>
<input type="text" class="form-control" placeholder="{{ trans('common.enter') }}" name="status_text" value="{{ $dataQr->status_text}}"></div>
</div>
</div>
</div>
<div class="form-actions">
<div class="row">
<div class="col-md-offset-3 col-md-9">
<button type="submit" class="btn green" id="submitContact" form="contactForm">{{ trans('common.submit') }}</button>
</div>
</div>
</div>
</form>
</div>
@endforeach
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
正文:
<tbody>
@foreach($dataQrDetails as $dataQr)
<tr>
<td> {{ $dataQr->winner_name }} </td>
<td> {{ $dataQr->username }} </td>
<td> {{ $dataQr->winner_gender }} </td>
<td> {{ $dataQr->mobile_no }} </td>
<td> {{ $dataQr->ship_address }} </td>
<td> {{ $dataQr->product_name }} </td>
<td> {{ $dataQr->product_stat }} </td>
<td> {{ $dataQr->created_at }} </td>
<td> <button type="button" class="btn btn-info btn-xs" data-toggle="modal" data-target="#myModal" data-winner="{{ json_encode($dataQr) }}">Open Modal</button>
</tr>
@endforeach
</tbody>
控制器:
public function statusUpdate(Request $request, $id)
{
$id = $request->input("id");
$winner = Winner::find($id);
if ($winner->product_stat == "Shipped") {
echo "Its Already Shipped!";
}else{
$winner->product_stat = "Shipped";
$winner->status_text = $request->get('status_text');
$winner->save();
$request->session()->flash('alert-info', 'Product Status Updated!');
return Redirect::to('admin/winner/detail');
}
}
路线:
Route::post('/winner/status/{id}', ['as' => 'winner.status', 'uses' => 'WinnerController@statusUpdate']);
现在,如果我单击一行的 edit 按钮,那么它会打开具有所有值的 Bootstrap 模式。但它应该是点击的值。如果我再次填写模态并单击submit 按钮,则它不会更新到数据库中。它只是用MethodNotAllowedHttpException 错误重定向../public/admin/winner/status/18 url。我怎样才能做到这一点?提前致谢。
【问题讨论】:
-
您是否在您的网络路由文件中设置了发布路由?您也不能只从模态框发布数据,您需要在 Ajax 中发送发布请求,当您收到来自服务器的响应时,您需要关闭模态框。
-
@ankitpatel 我没有发布路由。没有 AJAX 调用可以吗?
-
您必须在您的网络路由文件中设置发布路由以进行发布操作,而且当您在服务器上验证数据并收到错误消息时,我想不出任何其他方式?你会如何显示这些?
-
我添加了发布路线现在错误是
creating default object from empty value laravel。我将显示在同一页面中。并想单独编辑一行。 -
现在我可以更新,但是当我单击一个编辑按钮时,所有行值都会显示在引导模式中。我只想要点击的价值。使用 foreach 循环正在发生这种情况。
标签: javascript php twitter-bootstrap laravel laravel-5.2