codeigniter视图模板jquery ajax

我的问题是我使用codeigniter并为我的网站使用基本模板,所以我的标题将位于文件footer.php中名为header.php和footer的单独文件中。 主站点页面是名为maincontent的变量,所以在我的maincontent.php中,我将有以下几行:

load->view('includes/header'); $this->load->view($maincontent); $this->load->view('includes/footer'); ?> 

一切正常,直到我想做某种forms的基本ajax。 我想从文件加载页面段并将其插入当前加载的页面并且目标ID为#invoiceforms。 如何让ajax和jquery加载我需要的段并将其注入当前目标div而不再加载页眉和页脚等等。 我想过使用jquery加载所以我会做这样的事情:

 $('#invoiceforms').load('path/to/page'); //or $.get('path/to/page',function(){etc}); 

我是否需要在我的控制器中创建一个指向此特定页面的函数,如果是,那么我如何选择我需要的html并将其注入当前页面? 我以前遇到过这个问题,但不知道怎么问我的问题所以我只是回避了它。 如果我能在这里得到帮助,我将不胜感激。

这是我没有得到的部分。 我有这个jquery从页面获取html表:

 $.get('../ajaxops/loadinvoice',function(data){ $('#invoiceform').html(''+data+'
'); });

但是当它出现在我希望表格出现的目标div中时,它只显示表格的文本而不是表格结构本身。 但是使用firebug,页面会被发送,包括表格的标记。 这可能是什么问题?

Ĵ

我只是为ajax函数使用一个单独的控制器,它基本上只输出我要插入容器元素的html。

例如,要填充级联选择,我的jquery是:

 $(".addform #country, .searchform #country").change(function () { var p = $("#country option:selected").val(); $('#state').load('/ajax/states/get', {'country_id': p, 'csrf_token_name': cct}, function (data) {this.value = data;}) ; }).change(); 

我的控制器function

 load->library('form_validation'); } // populate state dropdown via AJAX, based on country selected function get() { $this->form_validation->set_rules('country_id', 'country', 'trim|required|strip_tags|is_natural_no_zero'); $data = null; if($this->form_validation->run() == TRUE ) { $cid = $this->input->post('country_id'); $this->load->model('Mgeography'); $data['arr'] = $this->Mgeography->get_all_state_by_country_id($cid); $data['optype'] = "select"; $data['label'] = "state"; $data['key'] = "state"; $this->load->view('ajax_view',$data); } } } /* End of file states.php */ /* Location: ./application/controllers/ajax/states.php */ 

和我的看法

 if ($optype == "select") { echo ""; foreach($arr as $row) { echo ""; } } 

另外,请不要忘记请求中的CSRF令牌 。