我尝试使用this.id通过JavaScript将视图加载到我的div #teste中但没有成功。我的职能有什么不对?
下面的JavaScript函数
<script type="text/javascript">
var baseurl = '<?php site_url(); ?>'; //raiz do website
function navbutton(id) {
$.ajax({
type: 'GET',
url: baseurl+'main/'+id,
dataType: 'html',
success: function(html) {
$('#teste').html(html);
}
});
}
HTML按钮
<li><a href="javascript:void(0)" id="contato" onclick="navbutton(this.id)">Contato</a></li>
我的主控制器(一个调用所有其他视图的功能)
class Main extends CI_Controller {
var $_data = array();
public function index()
{
if (!$this->uri->segment(1) && !$this->uri->segment(2)) {
$view = 'inicio';
}
if ($this->uri->segment(1) && !$this->uri->segment(2)) {
$view = $this->uri->segment(1, 'inicio');
}
if ($this->uri->segment(1) && $this->uri->segment(2)) {
$view = $this->uri->segment(1, 'inicio') . '/' . $this->uri->segment(2, '');
}
if (!file_exists(APPPATH . 'views/' . $view . EXT)) {
$view = "404";
header("HTTP/1.0 404 Not Found");
}
$this->load->view('templates/header');
$this->load->view($view, $this->_data);
$this->load->view('templates/footer');
}
答案 0 :(得分:1)
避免得到未捕获的ReferenceError:未定义导航按钮&#39;错误 使用javascript附加点击事件功能:
var baseurl = '<?php site_url(); ?>'; //raiz do website
function navbutton(id) {
$.ajax({
type: 'GET',
url: baseurl+'main/'+id,
dataType: 'html',
success: function(html) {
$('#teste').html(html);
},
error:function(v1,v2,v3){
alert('Something went wrong'); }
});
}
$("#contato").on('click',function(event){
event.preventDefault();
navbutton(this.id);
});
在 HTML 上使用
<li><a href="#" id="contato">Contato</a></li>
JSFIDLE test - 在此示例中,ajax请求将收到错误404,因为url未正确定义,但代码必须正常工作。
提示以确保所有代码都在正确的位置,在浏览器中加载后查看页面的源代码(CTRL + U)
答案 1 :(得分:0)
您是否尝试将字符串加载到元素?在这种情况下,您需要在加载视图方法时传递第三个参数TRUE。
$view = $this->load->view('templates/header', '', TRUE);
$view .= $this->load->view($view, $this->_data, TRUE);
$view .= $this->load->view('templates/footer', '', TRUE);
echo $view;
签入docs here。