0

私はyii Webアプリケーションを実行しています。ドロップダウンリストは別のものに依存する必要があります.ajaxを使用していますが、機能しません。従属ドロップダウンの yii チュートリアルを見て、どこでも検索しました。 http://www.yiiframework.com/wiki/24 これは私のメインのドロップダウンリストです:

<div class="row">
    <?php echo $form->labelEx($model, 'sourceID'); ?>
    <?php
    echo $form->dropDownList($model, 'sourceID', CHtml::listData(Sources::model()->findAll(), 'sourceID', 'name'), array('empty' => 'select source'), array(
        'ajax' => array(
            'type' => 'POST',
            'url' => CController::createUrl('reservations/atest'),
            'update' => '#meal'
        )
            )
    );
    ?>
    <?php echo $form->error($model, 'sourceID'); ?>
</div>    

これは従属ドロップダウンリストです:

<div  class="row">
    <?php echo $form->labelEx($model, 'meal'); ?>
    <?php echo $form->dropDownList($model, 'meal', array()); ?>
    <?php echo $form->error($model, 'meal'); ?>
</div>    

これは私のコントローラーアクションです:

  public function actionAtest() {

    $data = Sources::model()->findAll();

    $data = CHtml::listData($data, 'sourceID', 'name');

    foreach ($data as $value => $name) {
        echo CHtml::tag('option', array('value' => $value), CHtml::encode($name),true);
    } }

また、アクセス ルールにアクションを追加しました。よろしくお願いします。

4

1 に答える 1

0

ajaxの後にオプションを配置しましたhtmlOptions。ここに変更されたコードがあります

<div class="row">
    <?php echo $form->labelEx($model, 'sourceID'); ?>
    <?php
    echo $form->dropDownList($model, 'sourceID', CHtml::listData(Sources::model()->findAll(), 'sourceID', 'name'), array('empty' => 'select source','ajax' => array(
            'type' => 'POST',
            'url' => CController::createUrl('reservations/atest'),
            'update' => '#meal'
       )
      )
    );
    ?>
    <?php echo $form->error($model, 'sourceID'); ?>
</div>   

また、フォームのドロップダウンリストを使用する代わりにCHtml::dropDownList、依存するドロップダウンを使用します。

echo CHtml::dropDownList('meal','', array());

を使用することもできますCActiveForm::dropDownListが、その場合はオプションで使用する必要がCHtml::resolveNameIdありupdateますajax

于 2012-06-06T08:38:46.640 に答える