0

2 つのコンボがあります。州と都市。プロヴィンスのコンボ値が変化したときに、都市の値を変更したいと考えています。これが私のコードです

<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

4

2 に答える 2

2

'url' => '/cities/' は、都市コントローラーのデフォルトのインデックス アクションを呼び出しています。

これにより、citys/index.ctp ビューが自動的にレンダリングされます。

都市コントローラーに RequestHandler コンポーネントを含めましたか?

これを使用して Ajax リクエストを検出し、別のビューをレンダリングできます。

于 2008-10-29T20:01:25.873 に答える
0

最初にRequestHandler コンポーネントを CitiesController の先頭に含めてから、都市を一覧表示する関数を記述し、オプションで州の 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 に答える