我正在尝试重构一个链式Ajax调用(太链式了),以更简单的方式使用twig分隔HTML,PHP和js。 我有类似的东西:
$.ajax({
type: "GET",
dataType: "json",
url: "{{ urlsf }}",// THIS WILL LOAD SOME DATA
success: function (response) {
$.ajax({
type: "POST",
data: { per: response } ,
url: 'renderPage.php',
success: function (cont_contador) {
$('#main_content').html(cont_contador);
}//end of success
});//end of ajax for render call
}//end of success
});//end of ajax that loads data
同一成功-> ajax调用重复了几次,但我认为足以说明我的意思。 renderPage.php会渲染另一个文件,该文件具有一个js / jquery函数和一个使用twig函数的div,并且将响应设置为将其传递到render数组的twig变量。
在使用控制器处理负载时,我将移到了主库和HTML结构(带有树枝)中。
现在,这是我遇到这些麻烦的地方: 我无法使用javascript将响应移动到树枝。 我无法用javascript response var替换树枝,因为此树枝变量已在代码的其他位置使用。 我不想保留ajax调用,实际上,我想删除它以仅保留json调用。
修改
我将尝试为所要查找的内容建立一个架构:
实际上,有一个由一个事件触发的函数,该事件调用API,返回数据,然后渲染一个部分,然后触发另一个事件,该事件又渲染了另一个部分,然后触发另一个事件……所有这些都可以一次性完成,但是在其中一种渲染下,它会保存一个在网络其他部分使用的树枝变量。我想让那个树枝变量以某种不同的方式开始。
答案 0 :(得分:1)
为将来的参考,对Twig进行了一些简短的解释:
Twig是模板处理器。模板处理器从另一个文件生成一个HTML文件,该文件包含具有以下附加功能的HTML:
此过程在服务器端上进行。客户端仅获得HTML结果。 客户端语言(例如JS)可以直接更改此HTML,但不能更改未呈现的变量或循环。这是因为JS从来没有看到这种逻辑。
但是,使用AJAX,您仍然可以运行服务器端代码。我建议您首先使用数据库中的值设置树枝变量变量。每当您在数据库中更改此记录时,所有模板都会更新。