Codeigniter 代码点火器和标签内容

Codeigniter 代码点火器和标签内容,codeigniter,tabs,Codeigniter,Tabs,我有一些选项卡,它们的内容是我的网站功能齐全的部分 例如,在我的管理区域中,我有[添加/删除相册][添加照片][删除照片]选项卡。从技术上讲,我是通过标签来划分管理区域的 我正在使用ajax将内容加载到这些选项卡中。选项卡内容区域是一个div 选项卡内容区域内的视图也使用ajax加载内容。 这些是在选项卡内容区域内操作的ajax调用 只要选项卡内容区域内的视图保持不变或仅部分更改,一切都正常。但当选项卡内容区域内的某些交互返回一个全新的视图时,选项卡内容区域将不会显示它们 我知道返回的新视图没有

我有一些选项卡,它们的内容是我的网站功能齐全的部分

例如,在我的管理区域中,我有[添加/删除相册][添加照片][删除照片]选项卡。从技术上讲,我是通过标签来划分管理区域的

我正在使用ajax将内容加载到这些选项卡中。选项卡内容区域是一个div

选项卡内容区域内的视图也使用ajax加载内容。 这些是在选项卡内容区域内操作的ajax调用

只要选项卡内容区域内的视图保持不变或仅部分更改,一切都正常。但当选项卡内容区域内的某些交互返回一个全新的视图时,选项卡内容区域将不会显示它们

我知道返回的新视图没有传递到选项卡内容区域div

在firebug中,我可以看到ajax成功函数response显示了返回的新视图。 但我不知道如何将新视图传递到选项卡内容区域

如果有人能帮助我解释如何解决这个问题,或者如何在CI中管理选项卡内的内容,我将不胜感激

adminTabsview.php

<ul id="adminTabs"> 
    <li ><?php echo anchor('#album_addDelete', 'Album Add/Delete'); ?></li>     
</ul>   
<div id="adminTabsContent"></div>

$(document).ready(function(){   
$('#adminTabs a').on({      
    click: function (evt){          
        evt.preventDefault();           
        var page = this.hash.substr(1);          
         adminTabsAjaxCall(page);           
    }   
});
});

function adminTabsAjaxCall ($data){

$.ajax({
    type: "POST",
    url: "index.php/adminsite_controller/"+ $data + "/",
    dataType: "html",
    data: $data,
    statusCode: {removed}
            },
    success: adminTabContent        

});

function adminTabContent (data){            
    $('#adminTabsContent').html(data);
}
adminTabsview.php
$(文档).ready(函数(){ $('a')。在({ 单击:函数(evt){ evt.preventDefault(); var page=this.hash.substr(1); adminTabsAjaxCall(第页); } }); }); 函数adminTabsAjaxCall($data){ $.ajax({ 类型:“POST”, url:“index.php/adminsite\u controller/”+$data+“/”, 数据类型:“html”, 数据:$数据, 状态代码:{已删除} }, 成功:adminTabContent }); 函数adminTabContent(数据){ $('adminTabsContent').html(数据); }

albumsEditDeleteView.php
(这是一个加载到选项卡contentarea div中的视图)
$(文档).ready(函数(){ $('#albumList')。在({ 单击:函数(evt){ evt.preventDefault(); var$clickedElement=evt.target.tagName; 如果($clickedElement='A'){ var urlarray=url.split('/'); $selected.albumid=urlarray[8]; $selected.albumname=urlarray[9]; $selected.lft=urlarray[10]; $selected.rgt=urlarray[11]; $selected.nodededepth=urlarray[12]; 如果($class='add'){ albumajaxcall($selected); } 如果($class='delete'){ deleteajaxcall($selected); } } } }); }); 函数albumajaxcall($data){ $.ajax({ 类型:“POST”, url:“index.php/Adminsite\u Controller/add\u album/”, 数据类型:“json”, 数据:$数据, 状态代码:{已删除} }, 成功:adminTabContent }); } 函数adminTabContent(数据){ $('adminTabsContent').html(数据); }

//这是必须替换内部原始视图的视图文件
//选项卡内容区
//addnode_view.php

基本上,您需要做的是加载处理ajax的控制器函数(adminsite\u controller/which函数)选项卡中的任何新视图

这基本上会回显视图文件,该文件将被视为ajax函数的成功变量

因此,对于ajax的成功部分,您有这样的东西

success:function(msg){adminTabContent(msg);}
在codeigniter中的控制器中,您将以标准方式加载一个视图,但由于这只是加载页面的一部分,您可能需要创建一个新的视图文件,该文件就是将在其中的div。如果不是ajax,您将以相同的方式收集所有数据

$data['some_data'] = $this->some_model->some_function();
$this->load->view('someview', $data);

如果你能澄清你所问的问题,这不会有什么坏处。另外,请发布相关代码。我如何将新视图传递到选项卡内容区域?第二次阅读问题,仍然有点模糊,但感谢您提供代码。1.您是否已从adminTabContent发出“数据”警报,以查看其中是否填充了内容?2.您确定要在adminTabsAjaxCall中使用php样式“$data”吗?3.乍一看,ajax代码中似乎有一个额外的}?我已经发布了一些代码,显示加载到选项卡中的一个视图。请注意,成功函数只是实验性的。我不知道该如何处理该功能。我只是无法将数据传递到tabcontent div。顺便问一下,什么是php风格?在CI中,您是否以不同的方式执行此操作。我是新来的,谢谢你的回复。你所建议的是我已经做过的。正如我在文章中所说,我已经有了ajax函数的成功变量。我可以使用firebug查看整个视图。我不能做的是将其放入显示选项卡内容的div中(这也意味着内容区域中的现有视图将被完全替换)。如果查看我的代码,可以看到选项卡位于单独的视图文件中,加载到选项卡中的内容是另一个视图文件。我想我不应该试图将这些数据传递给tab content div。我想说的是,将您尝试使用ajax更新的部分与tab视图文件分开,并使其成为自己的视图文件。如果这仍然没有意义,perhpas发布处理ajax请求的控制器代码及其加载的视图文件,以及加载原始页面的视图文件将有所帮助。感谢您尝试帮助我。我已经发布了代码。请再看一眼。当你成功调用adminTabContent函数时,你没有传递任何消息。我想我得到了答案。似乎我在ajax中输入了错误的数据类型
success:function(msg){adminTabContent(msg);}
$data['some_data'] = $this->some_model->some_function();
$this->load->view('someview', $data);