@dk-web

Как корректно скрестить php mvc и ajax?

Не успел я обрадоваться тому, что сайт заработал с моим "гениальным" разделением (до сих пор сомневаюсь, что правильно), как постигла новая головная боль - обработки ajax запросов.
Админка сайта у меня построена на этом принципе:
Например, модуль Редактирование списка городов:
Было 3 файла:
cities_edit.php (чистый html - формы)
handler.php (сюда я слал ajax запросы и отсюда получал ответы)
*.js файл (собственно все ajax-запросы)

После создания единой входной точки - index.php соответственно файлов не существует и они разложены на контроллеры-модели (опять же строго не судите), плюс есть router.php

Так и куда отправлять запрос?
Я почитал в сети... но опять же, как и везде, сотни разных мнений - холивары что есть MVC и т.д...
Буду признателен если разум Тостера и его супер-пользователей поможет стартовать... дальше я думаю сам соображу.
По идее, это должно выглядеть как-то так...
$.ajax({
          type: "POST",
          url: "/academy_mvc/app/admin/mod_cities/source",
          dataType:"json",
          data: {
                   op:"source"
               },
            success: function(data, textStatus){
              console.log(data);
            },
            error: function(data, textStatus) {
            }
   }); /// КОНЕЦ AJAX

Но в каком файле это обрабатывать? Подтолкните в нужную сторону, пожалуйста.
  • Вопрос задан
  • 596 просмотров
Пригласить эксперта
Ответы на вопрос 2
iDokuro
@iDokuro
Тугодум
Ну... На контроллеры слать?

Например делаешь контроллер AjaxRequest

У него метод ну к примеру... saveAction

И примерно так обрабатываешь (Код под себя подгони):

<?php

class AjaxRequestController extends ControllerBase
{
    public function saveAction ()
    {
         if ($this->request->isAjax()) // Если запрос послан через Ajax
         {
              // Обработка и ответ
         }
    }
}
Ответ написан
@dk-web Автор вопроса
Вопрос решен. Все правильно сделал... просто в роутере не раскомментировал action.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы