单击表行返回不正确的数据

问题描述 投票:1回答:2

感谢您花时间看我的问题。

我有一个视图从我的数据库返回数据传递给控制器​​:

public function index()
    {
        $members = Member::orderBy('id', 'desc')->paginate(5);

        return view('home', compact('members'));
    }

我很满意这个观点:enter image description here

我用foreach循环将它传递给视图:

 @foreach ($members as $member)

 @include('partials.tableRow')

 @endforeach

我的tableRow看起来像这样:

<a class="panel-block" onclick="refs.show.open()">
  <span class="panel-icon">
    <i class="fas fa-user" aria-hidden="true"></i>
  </span>
  <span class="column is-4">
    {{ $member->name }}
  </span>
  <span class="panel-icon">
    <i class="fas fa-at" aria-hidden="true"></i>
  </span>
  <span class="column is-5">
    {{ $member->email }}
  </span>
  <span class="panel-icon">
    <i class="fas fa-tshirt" aria-hidden="true"></i>
  </span>
  <span class="panel-button column is-1">
    {{ $member->size }}
  </span>
  <span class="panel-icon">
    <i class="fas fa-coins" aria-hidden="true"></i>
  </span>
  <span class="panel-button column is-2">
    {{ $member->points}}
  </span>
</a>

当我点击单个表格行时出现问题。我希望它显示连接到各个表行的信息的数据。在下面的图片中,我点击了第一行(我自己的名字),最后来了:wrong data display

您可能会看到它显示了最后一行的信息,并且每次单击一行时都会显示。当我进一步降低分页时,同样的问题。

我已经检查过是否将数据传递给视图,我这样做:data passed to view

我的showMember模态看起来像这样:

<div class="modal" id="show">
  <div class="modal-background" onclick="refs.show.close()"></div>
  <div class="modal-card">
    <header class="modal-card-head">
      <p class="modal-card-title">{{ $member->name }}</p>
      <button class="delete" onclick="refs.show.close()" aria-label="close"></button>
    </header>
      <section class="modal-card-body">

        <!-- Content -->
        <li class="panel-block">
          <label class="column is-2"><b>E-mail</b></label>{{ $member->email }}
        </li>

        <li class="panel-block">
          <label class="column is-2"><b>T-shirt</b></label>{{ $member->size }}
        </li>

        <li class="panel-block">
          <label class="column is-2"><b>Points</b></label>{{ $member->points }}
        </li>
        <!-- Content -->

      </section>
      <footer class="modal-card-foot">
        <button class="button is-outline" onclick="refs.show.close()">Luk</button>
      </footer>

  </div>
</div>

为了将特定数据传递给模态,我可能会丢失一些指向id或其他内容的链接,或者javascript函数的问题是除了最后一个之外没有获取传递的数据?

先感谢您

javascript php laravel
2个回答
0
投票

不能确切地告诉laravel,但是在(Yii2,Symfony)返回的视图被执行并且有点死亡。您可以仅使用javascript动态更改模态的内容,javascript将通过AJAX加载数据或从隐藏元素获取并加载到模态。

请显示你的refs.show.open()。

2018年8月13日更新

所以你可以在显示模态之前做这样的事情。

document.getElementById('modal-email').innerText = this.getElementsByClassName('member-email').item(0).innerText;
document.getElementById('modal-size').innerText = this.getElementsByClassName('member-size').item(0).innerText;
document.getElementById('modal-points').innerText = this.getElementsByClassName('member-points').item(0).innerText;

0
投票

根据Bootstrap 4.1文档,您需要在单击后传递变量。

<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@getbootstrap">Open modal for @getbootstrap</button>

然后在你js:

   $('#exampleModal').on('show.bs.modal', function (event) {
  var button = $(event.relatedTarget) // Button that triggered the modal
  var recipient = button.data('whatever') 
// Extract info from data-* attributes

  var modal = $(this)
  modal.find('.modal-title').text('New message to ' + recipient)
  modal.find('.modal-body input').val(recipient)
})

数据源是data- *属性,你不需要任何其他东西来关闭模态。

© www.soinside.com 2019 - 2024. All rights reserved.