gpt4 book ai didi

php - Codeigniter - 使用 jQuery 刷新发送到 View 的数据

转载 作者:行者123 更新时间:2023-12-01 02:55:30 26 4
gpt4 key购买 nike

我不知道如何使用 jquery 刷新发送到 View 的数据而不刷新整个网站。我写了这样的东西:

Controller :

public function blog($id) {

$data['comments'] = $this->Comments->findall('blog', $id);
$this->load->view('sites/blog', $data);

}

型号:

...从数据库读取...

查看:

<div id="comments">

reading data from $comments sent by controller blog

</div>

如何在 Controller BLOG中的函数读取新刷新的评论数的 View 中使用jQuery刷新DIV评论?如果我放入 DIV 注释代码:

<? $this->load->view('sites/comments'); ?>

并使用 jQuery 刷新此 DIV,但这是不成功的,因为 Controller 发送的数据保持不变:/

最佳答案

我喜欢使用以下方法:

第一:使用 <div id="blog_container"></div> 创建一个 View main.php 。 main.php 是从您的默认 Controller 加载的。

第二:创建一个 View blogs.php,您将在其中输出博客数据,例如:

查看 blogs.php

<div class="comments">
<?=$comments?>
</div>

第三:向 main.php 添加 jquery ajax 函数,调用 Controller 函数,例如get_blogs()。此函数查询您的博客数据并加载 blogs.php,但有一个技巧:您将其设置为 true,因此输出是 html 字符串

ajax函数:

   function refresh_blog(){
$.ajax({
url: url to your controller,
type: 'POST',
cache: false,
success: function(html){
$('#blog_container').html(html)
}
});
}

Controller get_blogs:

get_blogs(){
// below would better be in a model
$html='';
$query = $this->db->get('my_blogs');
$blogs = $query->result();

foreach ($blogs as $row){
// data from your table my_blogs column comments
$data['comments']=$row->comments;
$html.=$this->load->view('blogs', $data, true); // returns view as data
};
echo html;
}

注意:您可以在点击事件上调用 ajax 函数,也可以每 x 秒自动调用一次(例如使用 setTimeout() )

关于php - Codeigniter - 使用 jQuery 刷新发送到 View 的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23768140/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com