Одностраничный веб-сайт с CodeIgniter и JQuery (AJAX) - PullRequest
0 голосов
/ 07 декабря 2009

Я хочу создать одностраничный веб-сайт, который работает на PHP (очевидно, с использованием CodeIgniter) и AJAX (поддерживается jQuery), в настоящее время у меня есть меню, которое заполняется из базу данных, в зависимости от того, какие категории выбираются в режиме онлайн, затем построить URL-адрес, используя эти результаты,

if(isset($main_menu)) {
    foreach($main_menu as $row) {
        print "<li><a href='index.php/home/category/$row->category_id'>$row->category_name</a></li>";
    }
}

Моя проблема заключается в том, что для этого мне нужно выполнить все запросы из контроллера (дома), поскольку пользователь никогда не сможет покинуть страницу, фактически, я хочу, чтобы, если пользователь нажимает, например, Blog, Я хочу выполнить запрос, который выбирает из таблицы содержимого в базе данных все содержимое, связанное с категорией блога. Затем я хочу отобразить его в стиле аккордеона на right-content div моего сайта. Затем, если пользователи выбирают, например, вдохновение, тогда запрос выполняется снова и добавляет данные вдохновения в тот же div, что и данные блога, но в своем собственном аккордеоне и не перезаписывает данные блога.

Это возможно и, что более важно, возможно, и где, черт возьми, я начну, я могу использовать как CodeIgniter, так и jQuery и действительно хочу использовать эти технологии и себя самого.

Спасибо

Ответы [ 2 ]

2 голосов
/ 07 декабря 2009

Я не знаю codeigniter, но я думаю, что это похоже на большинство ситуаций MVC. Где у вас будут методы для возврата ответов на AJAX-запрос (ы).

Это в Ruby и Prototype, но вы должны понять.

Контроллер:

def get_blog
  # find stuff
  # render or just return either js or json or xml or whatever
end

Javascript:

new Ajax.Request('http://yourdomain.com/get-blog', {
  onSuccess: function(response) {
    // do something with your response data
  }
});

Я прошу прощения, что это не в PHP.

1 голос
/ 07 декабря 2009

Вам просто нужны ваши вызовы AJAX для ссылки на уникальные контроллеры, чтобы сохранить разделение MVC. Это позволит вам поддерживать ваш бэкэнд-код в удобном для вас виде, создавая видимость единственной главной страницы. Вам нужно будет убедиться, что ваши ответы контроллера AJAX не генерируют данные представления, чтобы свести к минимуму накладные расходы.

Вы даже можете загрузить данные представления как частичные и вернуть строку в качестве ответа AJAX.

У вас может быть любое количество комбинаций контроллер / модель для поддержки ваших запросов AJAX, т. Е .:

  1. / blog / unique-blog-identifier (контроллер блога, метод индекса, уникальный параметр уникальный-блог-идентификатор)
  2. / news / unique-news-identifier (контроллер новостей, метод индекса, уникальный параметр уникальный-блог-идентификатор)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...