php形式ajax请求不起作用,yii框架

时间:2012-06-05 19:59:58

标签: php ajax yii

我正在做一个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);
    } }

另外,我将操作添加到访问规则中。 任何帮助表示赞赏, 先感谢您。

1 个答案:

答案 0 :(得分: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的{​​{1}}选项中使用update