gpt4 book ai didi

php - OctoberCMS Ajax 在前端排序

转载 作者:行者123 更新时间:2023-12-02 11:38:52 29 4
gpt4 key购买 nike

我正在寻找使用 ajax 在前端对列表进行排序的最佳实践。

所以我有一个循环遍历所有项目的组件。然后是一个带有复选框的侧边栏,用于使用 Ajax 进行过滤。每个复选框都是一个类别,并且通过检查该过滤器来启用过滤器。

在我的组件default.htm中,我有

{% set items = __SELF__.items %}

<div class="col-md-12" id="results">
{% for item in items %}

<ul>
<li>{{ item.title }} - {{ item.description }}</li>
</ul>


{% endfor %}
</div>

还有一个按钮,直到我可以切换到复选框为止。

<button class="btn btn-default"
data-request="onHandleForm"
data-request-update="#results">
Go

在我的组件插件文件中

// Fetches everything
public function onRun() {

$order = items::orderBy('id', 'asc');
$this->items = $order->get();

}

function onHandleForm()
{

// Fetch all of the items where category is 2 for test purposes
$order = items::orderBy('id', 'desc')->where('category','2');
$filter = $order->get();

$this->page['items'] = $filter;

}

但是我遇到了找不到该部件的问题。上面的内容相当草率,但我只是在寻找刷新内容的最佳方法(使用多个部分来更新或只是一个 div?)并处理范围。

我知道部分更新,但我需要一个工作示例来学习。我不知道组件中范围的最佳实践,这是否会影响分页,以及如何在一个组件中使用多个部分来build设置。

最佳答案

如果您想从处理程序中提取部分更新,则属性名称应该是

data-request-update="resultsPartialName: '#results'"

您也可以像这样使用多个部分:

data-request-update="firstpartial: '#myDiv', secondpartial: '#otherDiv'"

另一种方法是从 ajax 处理程序推送部分更新。这对我来说感觉更干净一些,但这只是偏好问题。

function onRefreshTime()
{
return [
'#myDiv' => $this->renderPartial('mypartial')
];
}

更多信息请参见 Updating partials官方文档页面。

关于php - OctoberCMS Ajax 在前端排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42934511/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com