在jquery ajax获取请求后更新twig模板

时间:2013-08-27 02:41:39

标签: jquery dom get request twig

我有一个js函数将一个get请求传递给php文件,以获取所选记录的db值。 get请求url在js控制台中报告正确,sql是正确的。

我如何但我不确定如何更新dom以刷新树枝模板标签。有更好的方法吗?

先谢谢你,詹姆斯

JS:

function editCatalogue(id) {
   var dataString = 'id='+id;        
    $.get('catalogue_db.php', 
      dataString,
      function(returnData) {
        showDialog();

    });          
};

PHP:

if ( (isset($_GET)) && ($_GET['id'] !="") ) {

    require_once 'library/twig/lib/Twig/Autoloader.php';

    Twig_Autoloader::register();
    $loader = new Twig_Loader_Filesystem('templates');
    $twig = new Twig_Environment($loader, array('cache' => 'compilation_cache','debug' => true ));
    $template = $twig->loadTemplate('catalogues.html');

    $catid = $_GET['id'];
    echo $catid;

    $sql = "SELECT
        catalogues.id,
        catalogues.title,
        catalogues.keywords,
        catalogues.code_bne,
        catalogues.description
        FROM
        catalogues
        WHERE
        catalogues.id = {catid}
        LIMIT 1 ";

    foreach ($conn->query($sql) as $row) {

        echo $template->render(array( 
            'title' => $row['title'],
            'code_bne' => $row['code_bne'],
            'description' => $row['description'],
            'keywords' => $row['keywords']
        ));
    }
}

1 个答案:

答案 0 :(得分:0)

Twig模板已在服务器上呈现为“预处理”。如果您正在尝试更新DOM,只需从GET请求中返回JSON数据并使用该容器重置HTML容器元素。

如果您尝试永久更新Twig模板,则必须在数据库记录中更新它。当然这意味着将模板存储在数据库表中。或直接从PHP写入文件。