Codeigniter View с контроллером в View (с контроллером) при загрузке 2-го представления 1-е представление данных стирается

ВТОРОЙ ВИД

<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 данные другой вкладки стираются или что-то в этом роде. Я знаю, что проблема в ajax-функции.ready(), потому что когда я читаю об этом, она загружает весь вид или что-то в этом роде, но когда я комментирую функцию ready () во ВТОРОМ ВИДЕ css apear без данных.

так, пожалуйста, у кого-нибудь была эта проблема?

1 ответ

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');    
});
Другие вопросы по тегам