Структура проекта
app\
____Controller\
________Main.php
public\
____js\
________ scripr.js
vendor\
index.php
composer.json
.htaccess
В файле script.js
$('#confirmForm').on('click', function (event) {
$.ajax({
url: '/confirm',
method: 'post',
dataType: 'json',
success: function (data) {
console.log(data);
}
});
});
Во фронт-контроллере (index.php) перенаправили запрос к, например, контроллеру Main::index()
<?php
session_start();
require_once '/vendor/autoload.php';
$router = new AltoRouter();
$router->map('GET|POST', '/confirm', 'Main::index');
if ($match = $router->match()) {
$path = explode('::', $match['target']);
$controllerName = 'Controller\\' . $path[0];
$controller = new $controllerName;
call_user_func_array([$controller, $path[1]], $match['params']);
} else {
header('Location: /404');
}
В контроллере Main.php
<?php
class Main()
{
public function index()
{
$service = new MainService();
$service->saveForm();
json_encode([
'success' => true,
'message' => 'Форма успешно сохранена'
], JSON_UNESCAPED_UNICODE);
}
}