Php表单ajax请求不起作用,yii框架


Php form ajax request not working , yii framework

我正在做一个 yii Web 应用程序我有一个应该依赖于另一个的下拉列表,我使用 ajax,但它不起作用。我看了依赖下拉列表的 Yiii 教程,到处搜索。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);
    } }

此外,我已将该操作添加到访问规则中。任何帮助不胜感激,提前谢谢你。

您将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但在这种情况下,您必须在update选项中使用CHtml::resolveNameId ajax