简体   繁体   English

在laravel中的bootstrap模态中提交表单

[英]form submit in laravel inside a bootstrap modal

I want to Submit a form in laravel, the form is inside bootstrap modal. 我想在laravel中提交一个表单,该表单在bootstrap modal里面。 That form is an update form, i get the parameter(id) for update from the view(table),then i pass it to modal using data-id, but i dont know how to get it inside my action form in the modal, i tried jQuery but still error. 该表格是一种更新表格,我从视图(表)获取要更新的参数(id),然后使用data-id将其传递给模态,但是我不知道如何在模态的动作表格中获取它,我尝试了jQuery,但仍然出错。

View : 查看:

  @foreach (App\Model\Users::all() as $users)
                <tr>
                  <td class="fname_{{ $users->id_user }}">{{ $users->nama_depan }}</td>
                  <td class="lname_{{ $users->id_user }}">{{ $users->nama_belakang }}</td>
                  <td class="emali_{{ $users->id_user }}">{{ $users->email_user }}</td>
                  <td class="nohp_{{ $users->id_user }}">{{ $users->no_hp }}</td>

                  <td>
                    <a href="#" data-target="#modaledit" data-toggle="modal" data-id="{{ $users->id_user }}"><i class="fa fa-pencil"></i></a>
                    <a href="#" data-href="{{ route('delete-user', $users->id_user) }}" data-toggle="modal" data-target="#modaldelete"><i class="fa fa-trash-o" style="margin-left:10px"></i></a>
                  </td>
                </tr>
                @endforeach

Modal : 模态:

<div id="modaledit" class="modal fade" role="dialog">
      <div class="modal-dialog">

        <!-- Modal content-->
        <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">&times;</button>
            <h4 class="modal-title">Edit User</h4>
          </div>
          <form id="formedit", method="PUT", action="">
          <div class="modal-body">
            <div class="form-group">
              <label for="InputEmail">Email address</label>
                <input type="text" class="form-control"
                id="InputEmail" value="a"/>
            </div>
            <div class="form-group">
              <label for="InputFname">First Name</label>
                <input type="text" class="form-control"
                id="InputFname"/>
            </div>
            <div class="form-group">
              <label for="InputLname">Last Name</label>
                <input type="text" class="form-control"
                id="InputLname"/>
            </div>
            <div class="form-group">
              <label for="Inputnohp">Phone Number</label>
                <input type="text" class="form-control"
                id="Inputnohp"/>
            </div>

          </div>
          <div class="modal-footer">
            <button type="submit" id="submit-edit" class="btn btn-default">Submit</button>
            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
          </form>
          </div>
        </div>
      </div>
    </div>

jQuery : jQuery的:

  $('#modaledit').on('show.bs.modal', function(e) {
        var data_id = ($(e.relatedTarget).attr('data-id'));
        var email = $('.emali_'+data_id).text();
        var fname = $('.fname_'+data_id).text();
        var lname = $('.lname_'+data_id).text();
        var nohp = $('.nohp_'+data_id).text();
        $(this).find('#InputEmail').attr('value', email);
        $(this).find('#InputFname').attr('value', fname);
        $(this).find('#InputLname').attr('value', lname);
        $(this).find('#Inputnohp').attr('value', nohp);
        $(this).find('#submit-edit').on('click', function(){
          $('#formedit').attr('action', "{{ URL::to('allusers.update',data_id) }}");
        });

    });

Route : 路线:

Route::resource('allusers','AllUsersController');

Controller : 控制器:

public function update(Request $request, $id_user)
{
    //
    $users = \App\Model\Users::findOrFail($id_user);
    //$users->update($request->all());
    $users->email_user = Input::get('InputEmail');
    $users->nama_depan = Input::get('InputFname');
    $users->nama_belakang = Input::get('InputLname');
    $users->no_hp = Input::get('Inputnohp');
    $users->save();
    return redirect()->route('all-users');

}

You can directly use .data() to get the ID. 您可以直接使用.data()获取ID。 For the td 's class, no need to post-fix with data, see below version : 对于td的类,无需使用数据后缀,请参见以下版本:

Put {{ URL::route('allusers.update','') }} inside form's action, then; {{ URL::route('allusers.update','') }}放入表单的动作中,然后;

HTML 的HTML

@foreach (App\Model\Users::all() as $users)
   <tr>
       <td class="fname">{{ $users->nama_depan }}</td>
       <td class="lname">{{ $users->nama_belakang }}</td>
       <td class="emali">{{ $users->email_user }}</td>
       <td class="nohp">{{ $users->no_hp }}</td>
       <td>
           <a href="#" data-target="#modaledit" data-toggle="modal" data-id="{{ $users->id_user }}"><i class="fa fa-pencil"></i></a>
           <a href="#" data-href="{{ route('delete-user', $users->id_user) }}" data-toggle="modal" data-target="#modaldelete"><i class="fa fa-trash-o" style="margin-left:10px"></i></a>
       </td>
   </tr>
@endforeach

JS JS

$('#modaledit').on('show.bs.modal', function(e) {

    var $this = $(e.relatedTarget);
    var data_id = $this.data('id');
    var modal = $('#modaledit');

    var parentTr = $this.closest('tr');
    var email = parentTr.find('.emali').text();
    var fname = parentTr.find('.fname').text();
    var lname = parentTr.find('.lname').text();
    var nohp = parentTr.find('.nohp').text();

    // directly use .val() instead of .attr()
    modal.find('#InputEmail').val(email);
    modal.find('#InputFname').val(fname);
    modal.find('#InputLname').val(lname);
    modal.find('#Inputnohp').val(nohp);        
    modal.find('#formedit').attr('action', function (i,old) {
       return old + '/' + data_id;
    });

});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM