Вызов / перезагрузка смарт-шаблона с помощью ajax в другом шаблоне - PullRequest
0 голосов
/ 25 ноября 2011

У меня есть div в моем шаблоне smarty, в который я хочу вызвать файл PHP через ajax, который будет извлекать / отображать другой файл шаблона.Он будет содержать список страниц на сайте, которые будут упорядочены, и вы можете нажимать стрелки вверх / вниз, чтобы изменить их порядок, поэтому мне нужно, чтобы он перезагружал один и тот же шаблон после каждого клика.

Возможно ли это?

<div id="pagelist_container"></div>
<script type="text/javascript">
  {literal}
    $(document).ready(function(){
      $("#pagelist_container").load("path_to_file/pages.php");
    });
  {/literal}
</script>

Тогда файл pages.php будет:

$smarty->display('ajax/pages.tpl'); 

Всякий раз, когда я добавляю умную строку, я получаю ошибку 500.

1 Ответ

0 голосов
/ 25 ноября 2011

Вы должны создать новый объект smarty в вашем файле ответов ajax, обратите внимание, что вам нужно будет включить Smarty.class.php в этот файл.Это содержимое path_to_file/pages.php:

// include smarty (assuming you have smarty in your path)
require_once('Smarty.class.php');
// initialize smarty
$smarty = new Smarty();
// setup cache, template_c & templates directory
$smarty->templates_c = "templates_c";
// assign any variables to smarty here
$smarty->assign('<variable>', $variable);
// fetch output for your pages
$output = $smarty->fetch('ajax/pages.tpl');
// return the content of the template to ajax caller
echo $output;
...