【问题标题】:Put Data on text boxes Edit/Update Modal Laravel将数据放在文本框上编辑/更新模态 Laravel
【发布时间】:2020-10-04 18:30:01
【问题描述】:

所以我正在使用模态来做这件事,我想我能够做到这一点,只是表格中的数据没有显示在模态的文本框中。我能够更新我的表格,只是我希望所选行的数据显示在模式中。

所以它看起来是这样的: enter image description here

这是我的观点:表格部分 (view/crud/crud.blade.php)

        <div>
            <table class="table" id="dataTable">
                <thead>
                  <tr>
                    <th scope="col">id</th>
                    <th scope="col">First</th>
                    <th scope="col">Last</th>
                    <th scope="col">Course</th>
                    <th scope="col">Action</th>
                  </tr>
                </thead>
                <tbody>
                    @foreach ($cruds as $crud)
                        <tr>
                            <td>{{$crud->id}}</td>
                            <td>{{$crud->firstName}}</td>
                            <td>{{$crud->lastName}}</td>
                            <td>{{$crud->course}}</td>

                            <td>
                              <a href="#" class= "btn btn-warning edit_btn"> Edit </a>                         
                              
                            </td>
                        </tr>
                    @endforeach
                </tbody>
              </table>
        </div> 
    @else
      <p> No Post found </p>
        
    @endif

这是我的观点:模态部分 (view/crud/crud.blade.php)

  <div class="modal fade" id="editModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog">
      <div class="modal-content">
        <div class="modal-header">
          <h5 class="modal-title" id="exampleModalLabel">EDIT DATA</h5>
          <button type="button" class="close" data-dismiss="modal" aria-label="Close">
            <span aria-hidden="true">&times;</span>
          </button>
        </div>
        
        <form action="/crud" method="POST" id = "editForm">
              {{csrf_field()}}
              {{method_field('PUT')}}

          <div class="modal-body">              
              <input type="hidden" class="form-control" id="crud_id">
              <div class="form-group">
                <label>First Name</label>
                <input type="text" class="form-control" name="firstName" id="firstName">
              </div>
              <div class="form-group">
                <label>Last Name</label>
                <input type="text" class="form-control" name="lastName" id="lastName">
              </div>
              <div class="form-group">
                <label>Course</label>
                <input type="text" class="form-control" name="course" id="course">
              </div>
          </div>
          <div class = "modal-footer">
             {{Form::submit('Update', ['class' => 'btn btn-primary'])}}
          </div>
        </form>
      </div>
    </div>
  </div>

这是我的 js (public/js/modal.js)

$(document).ready(function(){
    var table = $('#dataTable').DataTable();

    //display Edit Modal
    $('.edit_btn').on('click', function(){
        

        $tr = $(this).closest('tr');

        var data = $tr.children("td").map(function(){
            return $(this).text();
           }).get();

            console.log(data);

            $('#firstName').val(data[1]);
            $('#lastName').val(data[2]);
            $('#course').val(data[3]);
        
            $('#editForm').attr('action', '/crud/' + data[0]);
            $('#editModal').modal('show');
    })
    
});

这是我的控制器:更新部分

public function update(Request $request, $id)
    {
        //
        $this->validate($request, [
            'firstName' =>'required',
            'lastName' => 'required',
            'course' => 'required'
        ]); 

        //Adding Data
        $crud = Crud::find($id); 
        $crud->firstName = $request->input('firstName');
        $crud->lastName = $request->input('lastName');
        $crud->course = $request->input('course');
        
        $crud->save();

        return redirect('/crud');
    }

这是我的路线

Route::resource('crud', 'CrudController');

这是控制台中显示的内容:

(5) ["9", "abcde", "abcde", "abcde", "↵                               Edit              …             Delete ↵                            "]
0: "9"
1: "abcde"
2: "abcde"
3: "abcde"
4: "↵                               Edit                          ↵                               Delete ↵                            "
length: 5
__proto__: Array(0)

【问题讨论】:

  • 你能发布 console.log(data) 的输出吗?
  • 这是控制台中显示的内容:` (5) ["9", "abcde", "abcde", "abcde", "↵ Edit ... Delete ↵ "] 0: "9" 1 : "abcde" 2: "abcde" 3: "abcde" 4: "↵ Edit ↵ Delete ↵ " length: 5 proto: Array(0) `
  • 你为什么要在控制器中重定向 return redirect('/crud'); ?这段代码使模态关闭,你想显示它,对吧?
  • 我认为这不会影响模态,我用图片更新了问题来解释问题。请检查...谢谢
  • @account2020 当modal弹出并通过特定的id去检索数据时你怎么看?

标签: javascript php laravel bootstrap-modal crud


【解决方案1】:

你可以试试这个吗?

$(document).ready(function(){
    var table = $('#dataTable').DataTable();

    //display Edit Modal
    $('.edit_btn').on('click', function(){
        
        var id = $(this).parent().prev().prev().prev().prev().text();
        var firstName = $(this).parent().prev().prev().prev().text();
        var lastName = $(this).parent().prev().prev().text();
        var course = $(this).parent().prev().text();
        
            $('#firstName').val(firstName);
            $('#lastName').val(lastName);
            $('#course').val(course);
        
            $('#editForm').attr('action', '/crud/' + id);
            $('#editModal').modal('show');
    })
    
});

当您关闭它并再次单击其他记录时,您可能需要重置模式表单。如果它是一个引导模式,你可以在它关闭时用这个例子重置它:

// Clears modal form when is closed
        $('#kt_modal_org').on('hidden.bs.modal', function(e) {
        $(this).find('#org-form')[0].reset();
        });

【讨论】:

    猜你喜欢
    • 2019-03-10
    • 2020-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-23
    • 1970-01-01
    • 2012-08-29
    • 1970-01-01
    相关资源
    最近更新 更多