需要Codeigniter ajax信息
我是Codeigniter的初学者。这将是我第一次使用Ajax。当我点击导航链接时,我只想要“内容”部分更改。我需要学习如何在我的网站中使用ajax。需要Codeigniter 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使阿贾克斯。在此之后要做什么?我如何在视图中启用帖子?
编辑:我做了一些关于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>
......
我已经写在头部分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,我怎样才能发布不同的网页作为网址?
你的问题有点含糊,但这里有一些问题,我可以用你的JQuery看到:
您已经于您的JQuery设置
data: Json
,但它看起来像你 返回HTML,所以变化这到HTML。你有一个分号
type: post
之后,它应该只是一个逗号URL指向控制器,而不是方法。将其更改为
"<?php echo site_url('about/view'); ?>",
有在jQuery
.body()
没有这样的事,你要.html()
或为您的成功功能完整产品线:$('#content').html(msg);
。 Obviosult确保你有一个名为id =“content”的元素。然后,jQuery将用来自服务器的响应替换它,它应该是从控制器返回的纯html。您可以使用codeigniters $ this-> load-> view()来返回正确的文件。
其他注意事项 - 这似乎需要jQuery的读了起来,尤其是ajax function
这里有一个很好的教程遵循关于使用Ajax和CI - http://net.tutsplus.com/tutorials/php/codeigniter-from-scratch-day-8-ajax/
最后,使用控制台和Chrome开发人员工具网络检查器中的网络功能或通过这种方式获取Firebug for Firefox这样你可以看到js错误和监控Ajax请求(XHR)
我不确定我理解你的问题:S – 2012-08-04 19:17:34
我做了更多解释。我之前没有使用过Ajax。我试图理解它的逻辑。 $这个 - >输入 - >后( 'some_data'); ...我如何使用导航菜单? – ytsejam 2012-08-04 19:22:11
无论如何,你的代码中有什么问题?我想这会在使用AJAX时完美无瑕。 “你如何在视图中启用Ajax?',我不明白你在说什么。你在寻找jQuery代码示例吗? – Abdulaziz 2012-08-04 19:43:29