在CakePHP中避免在AJAX请求中显示默认布局

Avoid the display of default layout in AJAX request in CakePHP

本文关键字:显示 布局 默认 请求 CakePHP AJAX      更新时间:2023-09-26

我想显示一个测试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);
    });
  }
);

In my product_controller:

function test() {
  $this->autorender = false;
  $this->layout = 'ajax';
}
test.ctp中只写测试输出。

我不知道你是否弄清了问题所在。如果不想在视图周围环绕布局你可以简单地将layout设为false。我看到你已经禁用了自动渲染,这意味着你特别调用控制器的render('test')函数。

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