Загрузка контента через AJAX в jQuery (представление CodeIgniter)

-4

Я нашел хороший пример того, как использовать AJAX в jQuery по этой ссылке: http://yensdesign.com/2008/12/how-to-load-content-via-ajax-in-jquery/

Я добавил содержимое из файла index.html файл view.php (я использую CodeIgniter).

Все выглядит нормально, но если вы хотите переключиться на другой раздел, содержимое страницы не изменяется (тот же контент, что и раньше).

Я думаю, может быть, проблема в файле menu.js для передачи данных в файл CodeIgniter view.php?

Не могли бы вы дать мне какие-либо предложения о том, как я могу решить эту проблему? Надеюсь, это будет полезно и для других.

Файл Menu.js:

$(document).ready(function(){
//References
var sections = $("#menu li");
var loading = $("#loading");
var content = $("#content");

//Manage click events
sections.click(function(){
    //show the loading bar
    showLoading();
    //load selected section
    switch(this.id){
        case "home":
            content.slideUp();
            content.load("sections.html #section_home", hideLoading);
            content.slideDown();
            break;
        case "news":
            content.slideUp();
            content.load("sections.html #section_news", hideLoading);
            content.slideDown();
            break;
        case "interviews":
            content.slideUp();
            content.load("sections.html #section_interviews", hideLoading);
            content.slideDown();
            break;
        case "external":
            content.slideUp();
            content.load("external.html", hideLoading);
            content.slideDown();
            break;
        default:
            //hide loading bar if there is no selected section
            hideLoading();
            break;
    }
});

//show loading bar
function showLoading(){
    loading
        .css({visibility:"visible"})
        .css({opacity:"1"})
        .css({display:"block"})
    ;
}
//hide loading bar
function hideLoading(){
    loading.fadeTo(1000, 0);
};

});

Анимация из javascript работает (загрузка/контент/разделы), но реальный контент не загружается из html файла.

Как я уже сказал, похоже, что этот скрипт не может загружать контент в файл view.php (который является файлом представления CodeIgniter)

Любая помощь высоко ценится.

  • 1
    где JavaScript? PHP?
  • 0
    Все файлы вы можете найти по этой ссылке. В моей конфигурации: файл Javascript находится в папке / scripts в каталоге www сервера apache, а файл view.php находится в папке /application/view/lab/view.php.
Показать ещё 2 комментария
Теги:
codeigniter

1 ответ

0
Лучший ответ

CodeIgniter должен обслуживать sections.html и external.html. По умолчанию это не будет сделано.

Предполагая, что view.php используется для URL http://example.com/index.php/mycontroller/view, тогда jQuery отправит запросы по следующим URL-адресам.

http://example.com/index.php/mycontroller/sections.html
http://example.com/index.php/mycontroller/external.html

Если вы не сказали CodeIgniter, что делать для этих запросов, CodeIgniter вернет 404, а содержимое вашей страницы не будет обновлено.

  • 0
    Но если я добавлю строку, в javascript: content.load("<?=base_url()?>sections.html #section_home", hideLoading); Ничто не меняется. Там нет ошибки 404. Содержание в других разделах такое же, как и в первом разделе. Также, если я добавлю section функций в свой контроллер, с оператором echo, слайд просто поднимется, и ничего не произойдет.
  • 0
    Отлично, я решил проблему: D Просто добавил это в свой контроллер: function sections() { $this->load->view('view/sections.html'); }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню