我是一个使用Codeigniter的新手,我的问题是:我有一个带有按钮的引导页面,点击这个按钮,从javascript中进行ajax调用,从db检索一些数据。这些数据应该显示在弹出窗口的div中。到目前为止,我的方法是在主页中包含一个页面(Php),在主页中使用"include“of php,使用ajax调用javascript将数据放到div中,并使用$('#myPopup').modal(' show ')显示数据,但我不确定是否是最好的方法。另一种方法是用弹出窗口的html创建视图,从javascript我对控制器中的一个方法执行ajax调用,该方法从db检索数据并加载视图,这种方法的问题是,在ajax调用成功的部分,我拥有整个弹出窗口的html,因此如果我将其放在正文前面,每次按下按钮,它都会在页面末尾添加一个新的弹出窗口。
jQuery.ajax({
type: "POST",
url: "controller/get_informations",
success: function(res)
{
if (res)
{
// with second approach in res I have code of entire html
$('#popConfiguration').modal('show');
}
},
error: function(xhr, status, error) {
alert(xhr.responseText);
}
});什么是最好的方法,如果在未来我可以有其他7-8弹出?我认为把所有的弹出放在主页不是最好的谢谢。
发布于 2017-02-07 11:44:32
这一切都取决于。你必须多久打开一次调制解调器(并打电话给服务器)?谁是你网站的目标?你期望有多少交通?
也就是说,如果你的目标是整个世界,并且你期望有大量的流量或大量的调制解调器被打开,那么优化这些东西可能是至关重要的。从这个意义上说,每次要求服务器提供模板样式都是浪费资源。否则,它可能无害。
我认为有三种选择:
选项1
选项2
选项3
前两种选择就是你提到的。第三个选项是混合使用两个不同的AJaX来获取内容和模板。当用户第一次打开模型并将其存储在变量中供以后使用时,将获取模板。内容从服务器以JSON的形式返回,用于在向用户显示模板之前更新模板。
发布于 2017-02-07 10:59:23
要将html数据加载到div中,最好的方法是使用GET而不是POST。通过这种方式,您可以使用第二种方法(使用视图并从控制器将其作为html返回)将html加载到模型中的内部div,然后在load call_back function中显示模型。
html
<div id="modal-popup" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content" id="detail-section">
</div>
</div>
</div>js
$('#detail-section').load(your_url_to_controller, function(){
$('#modal-popup').modal();
});发布于 2017-02-07 11:20:20
您可以在主页中添加所有7-8弹出窗口,只需替换来自控制器的数据即可。
https://stackoverflow.com/questions/42087692
复制相似问题