Как мне обновить $ ajax-> remoteFunction () в CakePHP, чтобы изменить поля со списками провинций и городов? - PullRequest
0 голосов
/ 29 октября 2008

У меня есть две комбинации; провинции и города. Я хотел бы изменить значение городов при изменении значения комбо провинции. Вот мой код

<div class="cities form">
<?php
    $v = $ajax->remoteFunction(array('url' => '/cities/','update' => 'divcity'));
    print $form-> input('Province.province_id', array('type' => 'select', 'options'=> $provinces, 'onChange' => $v)); 
?>  
<div id="divcity">
<?php
    echo $form->input('Cities.cities_name'); 
?>
</div>

Каждый раз, когда я изменяю комбо провинции, он вызывает cities/index.ctp. кто-нибудь хочет помочь? очень благодарен за вашу помощь Wawan

Ответы [ 2 ]

2 голосов
/ 29 октября 2008

url => '/ towns /' вызывает индексное действие по умолчанию контроллера города.

Это автоматически отображает вид города / index.ctp.

Включили ли вы компонент RequestHandler в контроллер города?

Это можно использовать для обнаружения запросов Ajax, а затем для отображения другого представления.

0 голосов
/ 12 ноября 2008

Сначала необходимо включить Компонент RequestHandler в верхней части CitiesController, а затем написать функцию для вывода списка городов, для которых необязательно требуется идентификатор провинции.

Я думаю, у вас будет что-то вроде этого:

<?php
// In the view
$v = $ajax->remoteFunction(array('url' => '/cities/list','update' => 'divcity'));
print $form-> input('Province.province_id', array('type' => 'select', 'options'=> $provinces, 'onChange' => $v));

// In CitiesController
function list($province_id = null) {
    // use $this->City->find('list', array('fields'=>array('City.id', 'City.name'))) 
            // to generate a list of cities, based on the providence id if required
    if($this->RequestHandler->isAjax()) {
        $this->layout = 'ajax';
        $this->render();
    }
} ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...