Cakephp, как добавить несколько файлов просмотра в одном контроллере с помощью AJAX
У меня есть контроллер с именем User.i написать три функции в этом контроллере, т.е. function1,function2,function3 у каждой функции есть соответствующий файл вида в папке View/User folder.my, в моем файле function1.ctp я создаю левую строку меню, используя jquery. Есть три меню в этой строке меню, когда я щелкаю каждое меню, я хочу загрузить содержимое function1.ctp,function2.ctp function3.ctp с помощью ajax-запроса к контроллеру. Как мы можем это сделать? Это возможно..? если кто-нибудь может мне помочь.. пожалуйста, ответьте
1 ответ
Конечно, это возможно - AJAX определяет это как возможно.
Если у вас уже есть три настроенные функции, и вы видите, что они отображают свои представления, когда вы переходите к example.com/yourcontroller/functionName
тогда ты почти что.
Что нужно сделать сейчас на стороне клиента, когда пользователь нажимает на главное меню - загрузите подменю, верно? Хорошо прикрепите обратный вызов функции щелчка JavaScript к элементу HTML, по которому щелкнули, и когда это событие произойдет, вызовите сервер через AJAX.
Вам нужно будет спросить себя: "Что мне нужно вернуть с сервера - HTML или JSON?" В первом случае - когда вы получаете данные HTML обратно, просто поместите их в DOM, где вы хотите, чтобы они были. Во втором случае вам нужно будет обработать JSON и построить HTML или что-то еще.
Это был ответ, теперь несколько советов.
Вам действительно нужно использовать AJAX для меню? Они часто меняются?
Помните: 1 AJAX call == 1 запрос к серверу. Действительно ли в ваших подменю интенсивно используются данные / изменения, и вам нужно их загружать вот так? Если ваши меню меняются в зависимости от местоположения пользователя (на сайте) или действий пользователя, например, хорошо, вы можете использовать это, но в противном случае вы убиваете комара с помощью базуки! Вы должны постараться поддерживать как можно более низкий уровень обмена данными, gzip, который возвращает сервер и т. Д. И т. Д. Это решение может быть излишним для этой ситуации.