Функция CakePHP и JQuery .load () - PullRequest
0 голосов
/ 26 июля 2011

Я пытаюсь использовать функцию JQuery .load () с cakePHP.

В моем JS у меня есть:

$("div.banery_top_lewy").load("www.example.eu/events/drawLargeBanner");

Я также добавил компонент RequestHandler, затем вДействие drawLargeBanner Я повторил ссылку с изображением.Я ожидал, что это загрузит изображение в упомянутый div, но вместо этого загрузит всю страницу.


// edit

Некоторые из вас предположили, что если JS неиз того же домена это может не работать.Мой был из того же домена, хотя он не работал.Мое решение этой проблемы было изменить:

$("div.banery_top_lewy").load("www.example.eu/events/drawLargeBanner");

на

$("div.banery_top_lewy").load(".//events/drawLargeBanner");

Ответы [ 3 ]

2 голосов
/ 26 июля 2011

Когда вы имеете в виду загрузку всей страницы, вы имеете в виду, что она загружает все , например

<html
<!-- css bla bla -->
<body>
  <!-- content --> 
</body>
</html>  

Если это так, попробуйте использовать макет ajax.ctp, который поставляется с Cake - он выводит просто содержимое.

function drawLargeBanner() {
    $this->layout = 'ajax';
}

// вам может понадобиться создать этот макет, но он обычно находится в стандартной установке тортов

//ajax.ctp
<?php echo $content_for_layout; ?>

Создайте свой вид как обычно.

По сути, это пустой макет для использования с ajax, по-видимому, позволяющий вам достичь желаемого.

0 голосов
/ 26 июля 2011

В начале действия добавить это

$this->layout = null;

HTH

0 голосов
/ 26 июля 2011

Попробуйте добавить это к вашему действию в контроллере:

$this->autoLayout = false;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...