如何在octobercms中通过id请求return Ajax数据?

How to return Ajax data request by id in octobercms?

这必须非常直截了当,因为我不确定怎么做。

我正在构建一个包含类别和子类别的前端表单。下面的代码在 select 框中显示类别没有任何问题

Php块

$this['items'] = Cat::where('parent_id',0)->pluck('cat_title', 'id');

显示

<div class="form-group">
  <b><label class="float-left" id="cats" 
for="inputCategory">Category</label></b>
  <select id="category" class="form-control" data-request="onChangeCat" 
 data-request-update="select: '#subcategory'">
    <option selected>Choose...</option>

    {% for key, item in items %}
    <option value={{ key }}> {{ item }}</option>
    {% endfor %}

  </select>
</div>

我有一个数据请求,其中包含以下 Ajax 处理程序,用于在下一个 select 框中显示子类别。要渲染的部分也到位了

   function onChangeCat()
   {
   $this['subs'] = Cat::where('parent_id', '>',0)->pluck('cat_title', 'id');

    }

问题是我如何编写 Ajax 处理程序代码以仅按类别的 ID 显示子类别。上面的代码只显示了所有子类别。

您需要有一个路由,该路由将类别 select 上的 selected 项作为参数,然后该路由将过滤子类别以仅包含相关的子类别,您将使用 json_encode() 将结果发送回 json 获取数据并创建选项,然后将它们添加到子类别 select.

用户更改 select 类别时将调用该路线。

  1. 为您的 select 命名标签 <select name="category">..</select>
  2. 使用可通过 post() 函数访问的已发布数据查询子类别:例如 Cat::where('parent_id', '=', post('category') )->pluck('cat_title', 'id')