【问题标题】:pass the database value to modal popup将数据库值传递给模式弹出窗口
【发布时间】:2017-02-11 03:17:52
【问题描述】:

我想将获取的数据库值传递给模式弹出窗口。我已从数据库中获取值并列为带有分页的表。

'name' 字段有链接,并会在触发链接时显示模型弹出窗口。我想列出我从 laravel 5.3 中的链接检查的名称的详细信息。

现在所有链接的模型弹出窗口都使用“模式标题 3”触发。我想知道如何传递值模式弹出窗口并显示特定 id 的详细信息。我想知道我是否需要单独的页面或控制器来执行此操作。在哪里编写模态弹出窗口的查询。如何显示特定 ID 的详细信息。

身份证姓名年龄

1×26

2 年 28 岁

3 zz 30

<table border = 1>
     <tr>
        <td>ID</td>
        <td>Passanger Name</td>
        <td>Destination</td>
        <td>Created Date</td>
     </tr>
     @foreach ($users as $user)
     <tr>
        <td>{{ $user->p_id }}</td>
        <td><a href="#" class="viewPopLink" role="button" data-id="{{ $user->p_id }}" data-toggle="modal" data-target="#myModal">{{ $user->p_name }}<a></td>
        <td>{{ $user->destination }}</td>
        <td>{{ $user->created_date }}</td>
    </tr>
     @endforeach

  </table>
{{$users->links()}}

 <div class="modal fade" id="myModal" 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">Modal Header {{ $user->p_id }}</h4>
    </div>
    <div class="modal-body">
      <p>Some text in the modal.</p>
    </div>
    <div class="modal-footer">
      <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
    </div>
  </div>

</div>

【问题讨论】:

  • 使用jquery设置值

标签: php jquery laravel


【解决方案1】:

您可以按照@Komal 建议的方式进行操作,但我不会再执行 AJAX 请求,因为您已经拥有当前视图中模态所需的所有数据。这也使您免于编写另一个控制器。

将您需要的数据添加到&lt;a&gt; 元素中,并通过为模态添加一个简单的“加载时”方法,使用它将数据填充到模态弹出窗口中。

这里是代码。

<td>
   <a href="#" class="viewPopLink" role="button" 
      data-id="{{ $user->p_id }}" data-name="{{ $user->p_name }}" data-age="{{ $user->p_age }}" 
      data-toggle="modal" data-target="#myModal">{{ $user->p_name }}<a>
</td>

将此添加到模态正文中:

<p>
  <span>ID</span><span id="modal_p_id"></span>
  <span>Name</span><span id="modal_p_name></span>
  <span>Age</span><span id="modal_p_age"></span>
</p>

将此脚本添加到您的视图中:

<script>
    /* populate the modal popup when it's launched, with the data provided by the launching button ....  */
    $('#myModal').on('show.bs.modal', function (event) {
        var button = $(event.relatedTarget); // Button that triggered the modal
        var id       = button.data('id');    // Extract info from data-* attributes
        var age      = button.data('age');
        var name     = button.data('name');
        // Update the modal's content
        var modal = $(this);
        modal.find('.modal-title').text('Information for Passenger ' + name);
        modal.find('#modal_p_id').text(id);
        modal.find('#modal_p_name').text(filename);
        modal.find('#modal_p_age').text(age);
    });
</script>

【讨论】:

  • @user3386779 这是更好的方法。为什么要发出 ajax 请求来获取已经存在的数据。
【解决方案2】:

使用jquery ajax请求并获取用户数据设置模态

 $(document).on('click', '.viewPopLink', function() {    
    var user_id = $(this).data('id');
    $.ajax({
      url: 'user/get-details',
      type: 'GET',
      data: 'id='+user_id,
      dataType: 'JSON',
      success: function(data, textStatus, jqXHR){
        var name = data.name;
        $('.modal-title').html('<span>Modal Header ' + name + '</span>');   
        $('#myModal').modal('show');
      },
      error: function(jqXHR, textStatus, errorThrown){

      },
    });    
  });

控制器方法

  //Get user data
  public function getDetails(Request $request)
  {
    $request_data = $request->all();
    $user_id = $request_data['id'];
    $user_data = User::where('id', $user_id)->first();
    return response()->json($user_data);
  }

【讨论】:

  • 我需要控制器来获取详细信息吗
  • Yes.. getDetails 你的控制器方法是传递用户详细信息
  • 用户::where('id', $user_id)->first();你能解释一下这条线吗?我是新手
  • Laravel 查询获取用户数据 'select * from user where id = $user_id', 这里 User 是 Model name
  • Route::get('get-details','travelApprovalController@getDetail');
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-14
  • 1970-01-01
  • 2020-08-13
  • 1970-01-01
相关资源
最近更新 更多