在 Laravel 中通过 Modal Box 查看和更新​​数据

Posted

技术标签:

【中文标题】在 Laravel 中通过 Modal Box 查看和更新​​数据【英文标题】:Viewing and Updating Data throught Modal Box In Laravel 【发布时间】:2015-05-05 06:36:27 【问题描述】:

伙计们。我需要一些帮助来通过模式框查看我的数据并使用更新功能替换它。

这是我查看模态框的按钮

 Form::open(array(
                                'route' => array('edit_spk', 'id'=> $spk_data->id),
                                'method' => 'put',
                                'style' => 'display:inline'
                                ))
                            
                            <button class="btn btn-success btn-line btn-rect" data-toggle="modal" data-target="#editSpk"><i class="icon-pencil icon-white"></i> Edit</button>
                             Form::close()  

这是这个模态框的视图代码

<div class="col-lg-12">
 Form::open(array('url'=>'edit_spk','class'=>'form-horizontal', 'id'=>'block-validate'))                                
<div class="modal fade" id="editSpk" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
                                <div class="modal-dialog">
                                    <div class="modal-content">
                                        <div class="modal-header">
                                            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                                            <h4 class="modal-title" id="H4"> Edit SPK</h4>
                                        </div>
                                        <div class="modal-body">
                                        <div class="form-group">
                                            <label class="control-label col-lg-2">Distribution Code</label>
                                            <div class="col-lg-10">
                                                <div class="input-group">
                                                    <input class="form-control" id="distribution_code" name ="distribution_code" type="text" data-mask="M99/99/99/9999"/>
                                                    <span class="input-group-addon">M99/99/99/9999</span>
                                                </div>
                                            </div>
                                        </div>
                                        <div class="form-group">
                                            <label class="control-label col-lg-2">Destination</label>
                                            <div class="col-lg-9">
                                                <input type="text" id="destination" name="destination" class="form-control" />
                                            </div>
                                        </div>
                                        <div class="form-group">
                                            <label class="control-label col-lg-2">HLR</label>
                                            <div class="col-lg-9">
                                                <input type="text" id="hlr" name="hlr" class="form-control" />
                                            </div>
                                        </div>
                                        <div class="form-group">
                                            <label class="control-label col-lg-2">First ICCID</label>
                                            <div class="col-lg-9">
                                                <input type="text" id="first_iccid" name="first_iccid" class="form-control" />
                                            </div>
                                        </div>
                                        <div class="form-group">
                                            <label class="control-label col-lg-2">Last ICCID</label>

                                            <div class="col-lg-9">
                                                <input type="text" id="last_iccid" name="last_iccid" class="form-control" />
                                            </div>
                                        </div>
                                        <div class="form-group">
                                            <label class="control-label col-lg-2">Quantity</label>

                                            <div class="col-lg-9">
                                                <input type="text" id="quantity" name="quantity" class="form-control" />
                                            </div>                                       
                                        </div>
                                        <div class="form-actions no-margin-bottom" style="text-align:center;">
                                        <div class="modal-footer">
                                        <button type="button" class="btn btn-primary btn-line btn-rect" id="confirm">Update SKU</button>
  </div>                                </div>
                                Form::close()
                                         </div>
                                </div>
                            </div>
                        </div>
<!--END OF MODAL EDIT SPK-->

<!-- Dialog show event handler -->
<script type="text/javascript">
  $('#editSpk').on('show.bs.modal', function (e) 
      $message = $(e.relatedTarget).attr('data-message');
      $(this).find('.modal-body p').text($message);
      $title = $(e.relatedTarget).attr('data-title');
      $(this).find('.modal-title').text($title);


      var form = $(e.relatedTarget).closest('form');
      $(this).get('.modal-body #distribution_code').data('form', form);
      $(this).get('.modal-body #destination').data('form', form);
      $(this).get('.modal-body #hlr').data('form', form);
      $(this).get('.modal-body #first_iccid').data('form', form);
      $(this).get('.modal-body #last_iccid').data('form', form);
      $(this).get('.modal-body #quantity').data('form', form);
  );

  <!-- Form confirm (yes/ok) handler, submits form -->
  $('#editSpk').find('.modal-footer #confirm').on('click', function()
      $(this).data('form').submit();
  );
</script>

路线如下:

Route::put('spk/edit/id', array('as'=&gt;'edit_spk','uses'=&gt;'SpkController@edit'));

这是控制器

public function edit($id)
	
		$spk = Spk::find($id);
		$spk->title = Input::get('distribution_code');
		$spk->body = Input::get('destination');
		$spk->done = Input::get('hlr');
		$spk->done = Input::get('first_iccid');
		$spk->done = Input::get('last_iccid');
		$spk->done = Input::get('quantity');
		$spk->save();
		
		Session::flash('message', 'Successfully updated SPK !');
        return Redirect::to('spk_view');
	

有人可以帮我获取数据并将其查看到模态框中的元素中并使用 laravel 对其进行更新吗?谢谢你的好意:)

【问题讨论】:

【参考方案1】:

我遇到了同样的问题,我是这样解决的。 我的modal在index.blade页面,如下:

<a data-toggle="modal" role="button" href=" URL::to('user/'.$user->id.'/edit') " class="btn btn-default"><i class="icon-pencil"></i></a>

然后是模态:

@if(!empty($user))
    <!-- Form modal -->
            <div id="edit_modal" class="modal fade" tabindex="-1" role="dialog">
                <div class="modal-dialog">
                    <div class="modal-content">
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                            <h4 class="modal-title"><i class="icon-paragraph-justify2"></i> Edit User</h4>
                        </div>

                        <!-- Form inside modal -->
                        !! Form::model($user,array('route' => ['user.update', $user->id],'method'=>'PATCH')) !!

                            <div class="modal-body with-padding">                               
                                <div class="form-group">
                                    <div class="row">
                                    <div class="col-sm-12">
                                        <label>First name</label>
                                        <input type="text" class="form-control" placeholder="Chinedu"
                                         name="name" value="!! $user->name !!">
                                    </div>
                                    </div>
                                </div>
                        !! Form::close() !!
@endif

@if(!empty($user))
<script>
$(function() 
    $('#edit_modal').modal('show');
);
</script>
@endif

我的控制器方法是:

public function index()
    
        //View all users
        $users= User::orderBy('name', 'ASC')->paginate(10);
        return view('user.index',compact('users'));
    

public function edit($id)
    
        //
        $users= User::orderBy('name', 'ASC')->paginate(10);
        $user= User::findOrFail($id);
        return view('user.index',compact('users','user'));
    

希望对你有帮助

【讨论】:

以上是关于在 Laravel 中通过 Modal Box 查看和更新​​数据的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel 中通过 Ajax 存储数据失败

在laravel中通过vuejs创建数组?

在 Laravel 4 中通过迁移脚本创建 MySQL 视图

在 laravel 中通过 ajax 返回视图

在 Laravel 中通过 js onclick 事件提交数据

如果在 Laravel 5.3 中通过身份验证,则重定向