0

我有两个组合;省市。当省组合值发生变化时,我想更改城市值。这是我的代码

<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. 有人想帮忙吗?真的很感谢你的帮助

4

2 回答 2

2

'url' => '/cities/' 正在调用城市控制器的默认索引操作。

这会自动呈现 city/index.ctp 视图。

您是否在城市控制器中包含了 RequestHandler 组件?

这可用于检测 Ajax 请求,然后呈现不同的视图。

于 2008-10-29T20:01:25.873 回答
0

您需要首先在 CitiesController 的顶部包含RequestHandler 组件,然后编写一个函数来列出城市,可选地需要一个省的 id。

我想你最终会得到这样的东西:

<?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();
    }
} ?>
于 2008-11-12T01:08:13.423 回答