Javascript 使用twig重构ajax
我正在尝试重构一个链式ajax调用(太链式了),以便使用twig更简单地分离HTML、PHP和js。 我有点像:Javascript 使用twig重构ajax,javascript,php,ajax,twig,Javascript,Php,Ajax,Twig,我正在尝试重构一个链式ajax调用(太链式了),以便使用twig更简单地分离HTML、PHP和js。 我有点像: $.ajax({ type: "GET", dataType: "json", url: "{{ urlsf }}",// THIS WILL LOAD SOME DATA success: function (response) { $.ajax({ type: "POST", data: { p
$.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调用重复了好几次,但我认为一次就足以说明我的观点。
php呈现另一个文件,该文件具有一个js/jquery函数和一个使用twig函数的div,并将响应设置为twig变量,将其传递给呈现数组
在使用控制器处理负载时,我将移动到主库,并将移动到主HTML结构(有细枝)
现在,这就是我遇到这些麻烦的地方:
我无法使用javascript将响应移动到twig。
我不能用javascript响应变量替换twig,因为这个twig变量正在代码的其他地方使用。
我不想保留ajax调用,事实上,我想删除它以只保留json调用
编辑 我将尝试为我要寻找的内容创建一个模式:
- 主控制器:加载php连接、设置安全性、设置主要细枝变量并呈现主模板
- 主模板:加载CSS和js库,包括jquery和其中的主要js自定义函数,使用includes包含HTML和twig块主结构。调用。准备好了吗
- js函数:包含与HTML关联的事件和函数
实际上,有一个函数由一个事件触发,它调用API,返回数据,然后呈现一个部分,该部分触发另一个事件,该事件呈现另一个部分,然后触发另一个。。。它可以一次触发/加载,但在其中一次渲染时,它保存了一个用于web其他部分的细枝变量。我想让twig变量以不同的方式启动。对于twig,有一个小的解释供将来参考: Twig是一个模板处理器。模板处理器从另一个包含HTML的文件生成HTML文件,该文件具有以下附加功能:
- 变量和函数
- 文本替换
- 文件包含(或转换)
- 条件求值与循环
但是,使用AJAX,您仍然可以运行服务器端代码。我建议首先在数据库中设置细枝变量。每当您在db中更改此记录时,所有模板都将更新。用{{urlsf}表示的url是什么?不确定您要实现什么,但如果您想避免任何ajax调用,则需要在主控制器中呈现所有内容?但ajax调用无法在主模板中设置/更改
twig
-变量。这个问题并不令人困惑,但它只是忽略了细枝的实际用途。这几乎可以肯定是回调上DOM操作的工作。如果需要通过模板引擎推送任何数据,请请求服务器端,而不是客户端。主模板不知道ajax呈现的任何其他模板,模板已经呈现并作为输出(html)提供给客户端