Как загрузить представление внутри div - codeigniter - PullRequest
3 голосов
/ 07 марта 2012

У меня есть страница, на которой я хочу сохранить статичность с двумя элементами div, для которых я хочу загружать различные представления HTML во время навигации пользователя.Я хочу, чтобы содержимое изменялось без обновления всей страницы, а только с обновлением этих двух элементов div.

Как я могу загрузить конкретное представление в эти элементы div?У меня уже есть навигация по меню, которая определяет представления html, которые будут загружены в эти div-ы и функции контроллера, к тем пунктам меню, которые я получаю с помощью javascript, а затем использую его в контроллере главной страницы, я просто не знаю, как загрузить контент,

Ответы [ 3 ]

5 голосов
/ 07 марта 2012

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

С jQuery:

$('a.nav-button').click(function(e) {
  // prevent the default action when a nav button link is clicked
  e.preventDefault();

  // ajax query to retrieve the HTML view without refreshing the page.
  $.ajax({
    type: 'get',
    url: '/path/to/your/controller/method',
    dataType: 'html',
    success: function (html) {
      // success callback -- replace the div's innerHTML with
      // the response from the server.
      $('#yourDiv').html(html);
    }
  });
});
4 голосов
/ 07 марта 2012

Я думаю, вам нужно использовать jquery и Codeigniter

Это будет ваш код jQuery

$('nav').click(function(){//element to be click to load the page in the div
     $(your_div_element).load('controller/method');

});

Это будет ваш Codeigniter

function method(){

   $data['result'] = ''//you can use this if you need to pass some data to the view


   print $this->load->view('your_view',$data,true);//This will load your view page to the div element 

}

Goodluck!

2 голосов
/ 07 марта 2012

Чтобы поместить содержимое без обновления, вы должны использовать ajax, допустим, у вас есть div в файле в каталоге (веб-части), и вы хотите добавить его содержимое в div с именем my_div;сначала создайте метод на контроллере, который отображает только представление (div), которое вы хотите поместить что-то вроде этого

function part($part = false)
{
   $data = array(); // you can add data to your div, if you need to.
   $this->load->view("webparts/$part", $data);
}

Затем с помощью javascript (в данном случае jQuery) вы можете вызвать

$('#my_div').load('controller/mypart');

Примечание: мне нравится использовать "load", потому что это позволяет мне выбирать определенные разделы запрашиваемого мною представления, используя что-то вроде этого

 $('#my_div').load('controller/mypart #certainsection');

Загрузит элемент с id = "suresection" изmypart view

...