Загрузка php-страницы с помощью AJAX с использованием Smarty

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

Как мне это сделать, если я использую smarty?

Я знаю, что это может быть порядок, в котором он должен идти:

--

Запрос PHP

анализировать TPL

сделать html

показать в браузере

--

Я просто не уверен, как на самом деле делать второй и третий шаги, в частности.


person Barney    schedule 13.02.2013    source источник
comment
Есть ли причина, по которой вам нужен AJAX?   -  person str    schedule 13.02.2013
comment
При этом вы потеряете хорошие функции SEO.   -  person Peon    schedule 13.02.2013
comment
Это неправда @DainisAbols: вы можете сделать несколько вещей, например, предоставить контент через hasbang и «обычный» URL-адрес, оба ajax/complete.   -  person Nanne    schedule 13.02.2013
comment
Верно, но опять же, это не сделает сайт намного быстрее, а только запутает. Кэширование футера и шапки сделает сайт быстрее + ​​сайт будет работать, даже если я отключу JavaScript.   -  person Peon    schedule 13.02.2013
comment
Метод hashbang/direct url будет работать для вас, если вы включите javascript, так что это не проблема. Кроме того, вы должны учитывать ощущение скорости — если страница не выполняет полную перезагрузку, она может (я говорю «можно, потому что вам нужно правильно реализовать это») чувствовать себя быстрее с маршрутом AJAX. В конце концов, конечно, вы можете обсудить, лучший ли это метод, но он может быть лучшим, так что этого достаточно, чтобы этот вопрос был действительным и не отбрасывался, потому что есть лучший способ, не Не делай этого причины.   -  person Nanne    schedule 13.02.2013


Ответы (2)


Делайте то, что вы обычно делаете.

Для AJAX: вызовите некоторую функцию javascript, извлеките данные для отображения, отобразите данные в каком-либо месте DOM.

Для php/smarty: получить запрос (от ajax, но кого это волнует), сделать вещи PHP, заполнить smarty vars, вызвать smarty show, вернуть данные для показа.

person Nanne    schedule 13.02.2013

Вы можете сделать это двумя способами:

Вызовите функцию jquery ajax, которая изменяет содержимое div.

второй :

Используйте iframe, где вы хотите изменить содержимое.

person Hardik    schedule 13.02.2013