Typo3:在模式弹出窗口中显示详细数据
Typo3 : display detail data in a modal pop up
我在可点击的卡片中创建了一个用户列表,当我们点击卡片时,会出现一个模式弹出窗口。
我现在想在这些弹出窗口中显示用户的详细信息,但我真的不知道如何才能在弹出窗口中显示我单击的用户的数据。
这是我的列表代码:
<div class="container employees">
<div class="row">
<f:for each="{users}" as="user">
<div class="card card-annuaire">
<div class="card-body">
<h5 class="card-title">{user.firstname} {user.lastname}</h5>
<div class="links">
<ul>
<li class="loc">{user.address}</li>
<li class="tel">{user.telephone}</li>
<li class="service">{user.title}</li>
<li class="loc">{user.address}</li>
</ul>
</div>
</div>
</div>
</f:for>
</div>
<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<ul>
<li class="mail"></li>
<li class="tel"></li>
<li class="service"></li>
<li class="loc"></li>
<li class="comp"></li>
</ul>
</div>
</div>
控制器:
public function listAction()
{
$users = $this->frontendUser->findAll();
$this->view->assign('users', $users);
}
我的请求可以使用我当前的代码吗?
我的模式完美运行,我只需要添加我的数据
有人知道我该怎么做吗?
更新:用一些 Jquery 代码解决了复制我已经存在的数据的问题:
<script>
const modal = $('#exampleModal');
$('.card-annuaire').click(function () {
const divAnnuaire = $(this);
$('.modal-title', modal).text($('.card-title', divAnnuaire).text());
$('li.tel', modal).text($('.tel', divAnnuaire).text());
$('li.service', modal).text($('.service', divAnnuaire).text());
$('li.loc', modal).text($('.loc', divAnnuaire).text());
})
</script>
模态的处理是javascript的问题。
如果您在用户列表的每个块中都有所有数据,则可以向每个块添加一些 javascript,将这些数据从当前块 (this
) 复制到您的模态中,然后取消隐藏模态。
隐藏模态框后,您无需对包含的数据执行任何操作,因为下一次点击(如果模态框已经可见,也可能发生)将填充点击的数据块中的数据。
如果在您的模态中显示的数据比您存储在列表中的数据更多,您需要做更多的事情:
您需要数据的 ID 才能通过 ajax 调用获得整个 user-record。
但除此之外的处理是相同的:在每个列表块上都有一个事件处理程序,它由单击触发并使用块中的数据(所有字段,或者只是 ajax-call 的 uid 来获取所有数据)并将此数据插入模态。
我在可点击的卡片中创建了一个用户列表,当我们点击卡片时,会出现一个模式弹出窗口。
我现在想在这些弹出窗口中显示用户的详细信息,但我真的不知道如何才能在弹出窗口中显示我单击的用户的数据。
这是我的列表代码:
<div class="container employees">
<div class="row">
<f:for each="{users}" as="user">
<div class="card card-annuaire">
<div class="card-body">
<h5 class="card-title">{user.firstname} {user.lastname}</h5>
<div class="links">
<ul>
<li class="loc">{user.address}</li>
<li class="tel">{user.telephone}</li>
<li class="service">{user.title}</li>
<li class="loc">{user.address}</li>
</ul>
</div>
</div>
</div>
</f:for>
</div>
<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<ul>
<li class="mail"></li>
<li class="tel"></li>
<li class="service"></li>
<li class="loc"></li>
<li class="comp"></li>
</ul>
</div>
</div>
控制器:
public function listAction()
{
$users = $this->frontendUser->findAll();
$this->view->assign('users', $users);
}
我的请求可以使用我当前的代码吗? 我的模式完美运行,我只需要添加我的数据
有人知道我该怎么做吗?
更新:用一些 Jquery 代码解决了复制我已经存在的数据的问题:
<script>
const modal = $('#exampleModal');
$('.card-annuaire').click(function () {
const divAnnuaire = $(this);
$('.modal-title', modal).text($('.card-title', divAnnuaire).text());
$('li.tel', modal).text($('.tel', divAnnuaire).text());
$('li.service', modal).text($('.service', divAnnuaire).text());
$('li.loc', modal).text($('.loc', divAnnuaire).text());
})
</script>
模态的处理是javascript的问题。
如果您在用户列表的每个块中都有所有数据,则可以向每个块添加一些 javascript,将这些数据从当前块 (this
) 复制到您的模态中,然后取消隐藏模态。
隐藏模态框后,您无需对包含的数据执行任何操作,因为下一次点击(如果模态框已经可见,也可能发生)将填充点击的数据块中的数据。
如果在您的模态中显示的数据比您存储在列表中的数据更多,您需要做更多的事情:
您需要数据的 ID 才能通过 ajax 调用获得整个 user-record。
但除此之外的处理是相同的:在每个列表块上都有一个事件处理程序,它由单击触发并使用块中的数据(所有字段,或者只是 ajax-call 的 uid 来获取所有数据)并将此数据插入模态。