我是 Codeigniter 的初学者。这将是我第一次使用 Ajax。单击导航链接时,我只想更改“内容”部分。我需要学习如何在我的网站中使用 ajax。
MY_Controller.php:
class MY_Controller extends CI_Controller {
protected $data = array();
function __construct() {
parent::__construct();
}
function render_page($view) {
if( ! $this->input->is_ajax_request() )
{
//do this to don't repeat in all controllers...
$this->load->view('templates/header', $this->data);
//menu_data must contain the structure of the menu...
//you can populate it from database or helper
}
$this->load->view($view, $this->data);
if( ! $this->input->is_ajax_request() )
{
$this->load->view('templates/menu');
$this->load->view('templates/footer', $this->data);
}
}
我的家/关于控制器视图功能:
public function view($page = 'home')
{
$this->load->helper('text');
$this->data['records']= $this->services_model->getAll();
if ( ! file_exists('application/views/pages/'.$page.'.php'))
{
// Whoops, we don't have a page for that!
show_404();
}
$data['title'] = ucfirst($page); // Capitalize the first letter
$this->render_page('pages/'.$page,$data);
}
我想,我可以在 MY_Controller.php 中启用 ajax。这之后该怎么办?我应该如何在视图中启用帖子?
编辑:我对 jquery 和 ajax 做了更多的研究。这是我的 html 导航菜单部分:
<div id="sidebar-content">
<ul id="menu">
<li class="current"><a href="<?php echo site_url('home'); ?>">ANASAYFA</a></li>
<li><a href="<?php echo site_url('about'); ?>">HAKKIMIZDA</a></li>
......
我在 head 部分中编写了 ajax.js 文件:
//导航
$("#sidebar-content ul li a").click( function(){
$.ajax({
url: "<?php echo site_url('about'); ?>",
type: 'POST';
data: JSON,
success: function(msg) {
$('#content').body(msg);
}
});
});
return false;
});
你能改进我的代码吗?另一个问题是:如果我在头部使用 ajax,我如何将不同的页面发布为 url?