Форма OctoberCMS не отправляется (обработчик AJAX не найден) - PullRequest
0 голосов
/ 28 января 2019

Я создал компонент внутри своего каталога плагинов и в default.htm я поместил html формы и включил свой компонент в свою часть.Но когда я, когда я отправляю форму, я получаю «Компонент AjaxHandler: onSend не был найден»

default.htm

<div class="filter-holder">
    <div class="container">
        <div class="row">
 <form name="contact-form" data-request="{{ __SELF__ }}::onSend" data-request-success="alert('Message Sent')">

                <div class="col-md-5">
                    <input type="text" name="agent" class="form-control">
                </div>
                <div class="col-md-2">

                    <select class="form-control" id="services" name="services[]">&nbsp;
                        {% for client in records %}
                            <option value="{{ client.service }}">{{ client.service }}</option>
                        {% endfor %}
                    </select>
                </div>
                <div class="col-md-2">
                    <select class="form-control" id="search" name="area[]">&nbsp;
                        {% for client in records %}
                            <option value="{{ client.area }}">{{ client.area }} Miles</option>
                        {% endfor %}
                    </select>
                </div>
                <div class="col-md-3">
                    <input type="submit" value="Agents" class="red-btn btn btn-default">
                    <a class="location-view" href="#">location</a></div>
            </form>

ComponentClass.php

class MarkerData extends ComponentBase {

    public function componentDetails() {
        return [
            'name' => 'Marker Data',
            'description' => 'List of marker data'
        ];
    }


    public function onSend()
    {
       $data = post();
       print_r($data);die;
    }}

и в моем частичном файле я включил компонент

{% component "MarkerData"%}

Partial Code:

description = "A quick way to reference testimonials in the theme."

[viewBag]
snippetCode = "location-form"
snippetName = "Locations"
snippetProperties[category][title] = "Select Category"
snippetProperties[category][type] = "dropdown"
snippetProperties[category][default] = "customer"
snippetProperties[category][options][customer] = "Customer"
snippetProperties[category][options][agent] = "Agent"

[builderList]
modelClass = "Tech\Locations\Models\Location"
scope = "-"
scopeValue = "{{ :scope }}"
displayColumn = "name"
noRecordsMessage = "No records found"
detailsPage = "-"
detailsUrlParameter = "id"
pageNumber = "{{ :page }}"

[MarkerData]
==
{% set records = builderList.records %}
{% set displayColumn = builderList.displayColumn %}
{% set noRecordsMessage = builderList.noRecordsMessage %}
{% set detailsPage = builderList.detailsPage %}
{% set detailsKeyColumn = builderList.detailsKeyColumn %}
{% set detailsUrlParameter = builderList.detailsUrlParameter %}
{% component "MarkerData" %}

Я хочу, чтобы моя форма соответствовала методу, определенному в компоненте.Есть ли другой способ отправить форму через ajax в OctoberCMS

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Это было решено.Я забыл добавить компонент в макете контента из бэкэнда

0 голосов
/ 28 января 2019

В вашем частичном коде вам нужно добавить

Partial Code:

[viewBag]
snippetCode = "location-form"
snippetName = "Locations"
snippetProperties[category][title] = "Select Category"
snippetProperties[category][type] = "dropdown"
snippetProperties[category][default] = "customer"
snippetProperties[category][options][customer] = "Customer"
snippetProperties[category][options][agent] = "Agent"

[builderList]
modelClass = "Tech\Locations\Models\Location"
scope = "-"
scopeValue = "{{ :scope }}"
displayColumn = "name"
noRecordsMessage = "No records found"
detailsPage = "-"
detailsUrlParameter = "id"
pageNumber = "{{ :page }}"

[LocationData] <======= I guess this is not needed
[MarkerData] <========= This ONE you need add
==
{% set records = builderList.records %}
{% set displayColumn = builderList.displayColumn %}
{% set noRecordsMessage = builderList.noRecordsMessage %}
{% set detailsPage = builderList.detailsPage %}
{% set detailsKeyColumn = builderList.detailsKeyColumn %}
{% set detailsUrlParameter = builderList.detailsUrlParameter %}
{% component "MarkerData" %}

, после чего он добавит MarkerData на эту страницу, так что OctoberCMSможно найти that component and its Ajax-handler

если есть сомнения, пожалуйста, прокомментируйте.

...