我正在使用CodeIgniter作为我的Web框架,并且从控制器开始,我正在使用$this->load->view('Apartments_Hotels', $data
来首次加载数据。但是现在我需要在视图中使用ajax函数重新加载页面以提供新数据。
视图中的Ajax函数
$(document).ready(function() {
$(".filter_checkbox").click(function(){
var filter = [];
$.each($("input[name='filter']:checked"), function(){
filter.push($(this).val());
});
$.ajax({
async: false,
type: 'POST',
data: {
filter: filter
},
url: "<?php echo base_url(); ?>index.php/ListingsController/showFilterListings",
success: function (response) {
}
});
});
});
控制器功能
public function showFilterListings(){echo $this->load->view('Apartments_Hotels', $data, TRUE);
}
但这不起作用。谁能帮助我使用ajax函数一次又一次地加载视图
答案 0 :(得分:2)
从您的原始帖子中,我不明白什么是“无效”。
您已经知道如何显示视图(通过调用控制器)。您已经知道如何使用Ajax(从服务器获取信息),以及如何使用jQuery(为视图浏览器渲染DOM)。
问题是您不想刷新整个页面。在您当前的Ajax调用中,这似乎正是您正在做的事情。
解决方案是:
要进行初始显示,请让CI控制器返回一个视图-就像您已经在做的一样。
该视图将具有“ $(document).ready()”动作处理程序,该处理程序将进行Ajax调用-就像您已经在做的一样。
在视图中添加一个<div id="xyz"...>
标签,以便从服务器接收“刷新数据”。
您的Ajax调用将调用一个不同 URL-一个返回 JSON 数据的URL-您要“刷新”的数据。
< / li>您的Ajax处理程序将a)从响应中解析出JSON,然后b)使用它来更新DOM中的<div>
。
以下是一些示例: