Избегайте отображения макета по умолчанию в AJAX-запросе в CakePHP - PullRequest
1 голос
/ 30 ноября 2011

Я хочу показать тестовый div, когда событие onchange выбора вызвано, но в результате отображается общий макет div. Я просто хочу, чтобы test.ctp появилось в моем результате div.

Это мой код, пожалуйста, расскажите, что здесь не так. У меня выпадающий список с id="ProductCategoryId" и результат div, например:

<div id="result">result html</div>

Это функция jQuery:

$("#ProductCategoryId").change(
  function() {
    var catid = $(this).val();
    $.post('product/test', {id: catid},
    function(result) {
      $('#result').html(result);
    });
  }
);

По моему product_controller:

function test() {
  $this->autorender = false;
  $this->layout = 'ajax';
}

и в test.ctp записывается только тестовый вывод.

1 Ответ

1 голос
/ 30 ноября 2011

Я не знаю, выяснили ли вы проблему или нет. Ну, если вы не хотите оборачивать макет вокруг вашего представления, вы можете просто установить макет в false. И я вижу, что вы отключили автоматический рендеринг, что означает, что вы конкретно вызываете функцию контроллера render('test') .??

   $this->autorender = false;
   $this->layout = false;
   $this->render('test');
...