Codeigniter在View(带控制器)内使用控制器查看加载第二个视图时,第一个视图数据将被删除

时间:2016-07-04 15:35:08

标签: jquery ajax codeigniter view ready

第二视图

<script type="text/javascript">
 var GlobalVariables = {
    'csrfToken'     : <?php echo json_encode($this->security->get_csrf_hash()); ?>,
    'baseUrl'       : <?php echo '"' . $base_url . '"'; ?>,
    'dateFormat'    : <?php echo json_encode($date_format); ?>,
    'services'      : <?php echo json_encode($services); ?>,
    'categories'    : <?php echo json_encode($categories); ?>,
    'user'          : {
        'id'        : <?php echo $user_id; ?>,
        'email'     : <?php echo '"' . $user_email . '"'; ?>,
        'role_slug' : <?php echo '"' . $role_slug . '"'; ?>,
        'privileges': <?php echo json_encode($privileges); ?>
    }
  };

  $(document).ready(function() {
    BackendServices.initialize(true);
  });
</script>
  <div>some contenent</div>

所以这是我希望在此视图中集成的视图

第一视图

<script type="text/javascript">
var GlobalVariables = {
    'csrfToken'     : <?php echo json_encode($this->security->get_csrf_hash()); ?>,
    'baseUrl'       : <?php echo '"' . $base_url . '"'; ?>,
    'dateFormat'    : <?php echo json_encode($date_format); ?>,
    'userSlug'      : <?php echo '"' . $role_slug . '"'; ?>,
    'settings'      : {
        'system'    : <?php echo json_encode($system_settings); ?>,
        'user'      : <?php echo json_encode($user_settings); ?>
    },
    'user'          : {
        'id'        : <?php echo $user_id; ?>,
        'email'     : <?php echo '"' . $user_email . '"'; ?>,
        'role_slug' : <?php echo '"' . $role_slug . '"'; ?>,
        'privileges': <?php echo json_encode($privileges); ?>
    }
};



$(document).ready(function() {
    BackendSettings.initialize(true);

});
</script>

<div>Sidebar..
  ...
       <div id="#loading-view" > a tab in the side bar</div>
 </div>

我发现了与我相似的情况,但他们的观点是没有控制者的  我在FIRST VIEW控制器(具有侧栏的视图)

中尝试了这个
 $('.tab').click(function() {
   $('#loading').load(GlobalVariables.baseUrl + '/index.php/backend/services');

但是在加载div中加载第二个视图时,其他选项卡的数据将被删除或类似 。我知道问题出在.ready()ajax函数中 因为当我读到它时,它会加载整个视图或类似的东西 但是当我在SECOND VIEW中评论ready()函数时,css apear没有数据。

所以请有人有这个问题吗?

1 个答案:

答案 0 :(得分:0)

jQuery element.load()每次都会替换元素的内容。 要在父视图中加载视图,您需要将其内容加载到父视图中的子div。

<强> HTML

<div id="parentView">
   <div id="childView"></div>
</div>

<强>的Javascript

$('.tab').click(function() {
       $('#parentView').load(GlobalVariables.baseUrl + '/index.php/backend/services');
       $('#childView').load(GlobalVariables.baseUrl + '/index.php/backend/services');    
});