我使用 CodeIgniter 作为我的 Web 框架和 Controller ,我使用 $this->load->view('Apartments_Hotels', $data
第一次加载数据。但是现在我需要在 View 中使用 ajax 函数重新加载包含新数据的页面。
View 中的 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) {
}
});
});
});
Controller 函数
public function showFilterListings(){echo $this->load->view('Apartments_Hotels', $data, TRUE);
但这行不通。谁能帮我一次又一次地使用 ajax 函数加载 View
最佳答案
从您的原始帖子中,我不明白什么“不起作用”。
您已经知道如何显示您的 View (通过调用 Controller )。您已经知道如何使用 Ajax(从服务器获取信息)以及如何使用 jQuery(为 View 操作浏览器呈现的 DOM)。
问题是您不想刷新整个页面。对于当前的 Ajax 调用,这似乎正是您正在做的事情。
解决方法是:
对于初始显示,让您的 CI Controller 返回一个 View - 就像您已经在做的一样。
View 将有一个“$(document).ready()”操作处理程序,它将进行 Ajax 调用 - 就像您已经在做的那样。
添加
<div id="xyz"...>
标记到您的 View ,以便从服务器接收“刷新数据”。您的 Ajax 调用将调用一个不同 URL - 一个返回 JSON 数据的 URL - 您想要“刷新”的数据。
您的 Ajax 处理程序将 a) 从响应中解析出 JSON,然后 b) 使用它来更新
<div>
在你的 DOM 中。
这里有一些例子:
关于php - 如何在 CodeIgniter 中使用 AJAX 函数更改网页数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54972751/