Cakephp $ this-> layout = 'ajax' - PullRequest
       1

Cakephp $ this-> layout = 'ajax'

4 голосов
/ 21 октября 2011

Кажется, что мой CSS не работает, когда я объявляю $ this-> layout = 'ajax' в моем контроллере.

в моем view1.ctp, я создал диалоговое окно, используя jquery.содержимое будет получать из view2.ctp через jquery.ajax ().я создал html классы, id и все аналогичные view1.ctp.

Содержание, которое я получаю, в порядке.проблема в том, что id и классы, которые я объявил в view2.ctp, не работают.короче, я получаю пустой дизайн диалога.

есть идеи, как это решить?заранее спасибо.ура!

в моем view1.ctp:

<div id="thisDialog">
    <div id="content">
    </div>
</div>  

<script>
    jQuery('.test_box').live('click',function(){
        jQuery('#content').empty();
        jQuery.ajax({
            async:false,
            url: '/controller1/view2/'+id //url pointing to my 1controller.php
            success:function(data){
                jQuery('#content').append(data);

            }
        });


        jQuery('#thisDialog').dialog('open');
    });

</script>

здесь - controller1.php

function view2($id)
    {
    $this->layout = 'ajax';
    $query = $this->Model->find('all') //somequery here
}

здесь - view2.ctp

<div class='box'>
     <div class='title'>
          <h5>Title here</h5>
     </div>
     <div class='contents'>
         <table>
             <tr>
             <td class='head'></td>
              <td class='head'></td>
              </tr> 
              <tr>
               <td class='alt'>Field content1 here</td>
               <td>Fields content2 here</td>
              </tr>
         </table>
     </div>
</div>

Ответы [ 3 ]

4 голосов
/ 21 октября 2011

Макет AJAX - это простой пустой файл, который содержит только вывод HTML (или другого содержимого), который вы выводите. Он не содержит таблиц стилей, потому что информация о стиле должна поступать со страницы, на которую вы вставляете контент. Определение ваших стилей для идентификатора и классов на вызывающей странице решит вашу проблему.

0 голосов
/ 27 октября 2011

Зачем вам нужен CSS для макета «ajax»? В любом случае:

  1. Макет может быть найден по адресу /cake/libs/view/layout/ajax.ctp (как уже было сказано, потому что он не имеет ничего общего с html, просто выводите данные из контроллера.
  2. Вы можете скопировать этот (или default.ctp) файл в /app/views/layouts/ajax.ctp, чтобы он использовался вместо того, который находится в основных файлах тортов.
0 голосов
/ 21 октября 2011

Макет 'ajax' можно найти в файле cake / libs / view / layouts / ajax.ctp:

<?php echo $content_for_layout; ?>

По сути, это выводит только представление, без какого-либо окружающего HTML (поэтомунет CSS или JS).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...