我需要为同一行中的相同列创建依赖下拉列表

时间:2011-12-31 11:36:10

标签: php html ajax yii

我需要你的帮助..我正在使用yii创建一个关于书籍输入的Web应用程序。 在一个表格中,我需要从一个表中下拉一个isbn数字,该表格应该检索另一个文本字段或下拉框中相同行的相关书籍标题....我希望你理解我的概率请给出建议。我是编码html视图页面

<div class="row">
    <?php echo $form->labelEx($model,'isbn_no'); ?>
    <?php echo $form->dropDownList($model,'isbn_no',CHtml::listData(Books::model()->findAll(array('order'=> 'isbn_no ASC')),                            'isbn_no', 'isbn_no'),array('empty'=>'Select'),array(
                    'ajax' => array(
                    'type' => 'POST',
                    'url' => CController::createUrl('Processcontroller/Book'),
                    'update' => "#book_title"
                )));?>
    <?php echo $form->error($model,'isbn_no'); ?>
</div>

<div class="row">
    <?php echo $form->labelEx($model,'book_title'); ?>
<?php echo $form->dropDownList($model,'book_title','',array(),array('empty'=>'select'));

    <?php echo $form->error($model,'book_title'); ?>
</div>

我的控制器名为ProcessController.php

public function actionBook()
{
//please enter current controller name because yii send multi dim array
    $data=Books::model()->findAll('book_id=:book_id', 
                  array(':book_id'=> $_POST['current-Controller']['book_id']));

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

.... 我的桌子就像下面的名字 book_id(PK)| isbn_no | book_title |

1 个答案:

答案 0 :(得分:1)

我能在代码中看到的唯一问题是

在你的控制器中

$data=Books::model()->findAll('book_id=:book_id', 
              array(':book_id'=> $_POST['current-Controller']['book_id']));

虽然您应该比较isbn_no,因为您要将isbn_no从表单发送到控制器......

$data=Books::model()->findAll('isbn_no=:isbn_no', 
              array(':isbn_no'=> $_POST['current-Controller']['isbn_no']));

如果出现其他一些错误,那么请提一下......因为代码似乎没问题......而你还没有提到错误是什么..