0

ページに 2 つの従属ドロップダウン リストを表示する必要があります。最初のドロップダウン リストから項目を選択すると、選択した項目に基づいて、2 番目のドロップダウン リストのエントリがフィルター処理され、2 番目のドロップダウン リストの値を使用して検索を実行する必要があります。 . しかし問題は、最初のドロップダウン リストに表示されるテーブルの値は、そのアクティブなレコードではないということです。誰でもこれについて助けることができますか?

現在、2 番目のドロップダウン リストが用意されており、選択した値に基づいて検索を実行できます。次に、この上にドロップダウン リストを配置し、最初のドロップダウン リストに基づいて項目をフィルター処理する必要があります。

編集

1 番目のテーブル - client_id、client_name - 最初のドロップダウン リストの項目には、クライアント名が表示されます。

2 番目のテーブル - program_id、client_id、program_name -

3 番目のテーブル - ad_id、program_id、ad_name - 2 番目のドロップダウン リストには、client_id を使用してフィルター処理された ad_names が表示されます。

4

1 に答える 1

0

最後に私はそれをやった、ここにある。

私のコントローラーでは、

public function actionDynamicDropdownList()
   {
    if($_POST['client_id'] > '0') {
        $result = Yii::app()->db->createCommand()->select('program_id, program_name')->from('program')->where('client_id='.$_POST['client_id'].'')->order('program_name')->queryAll();
        $this->render('admin', array(
            'result' => $result,
        ));
      }
}
public function actionDynamicProgramsList()
{
    if($_POST['program_id'] > '0') {
        $results = Yii::app()->db->createCommand()->select('ad_id, ad_name')->from('ads')->where('program_id='.$_POST['program_id'].'')->order('ad_name')->queryAll();
        $this->render('admin', array(
            'results' => $results,
        ));
    }
}

そして私の見解では、私は追加しました

<?php
$data = Yii::app()->db->createCommand()->select('client_id, client_name')->from('client')->order('client_name')->queryAll();
echo CHtml::dropDownList('client_id', '',CHtml::listData($data,'client_id','client_name'), array(
'empty'=>'- Select Client Name -',
'ajax'=> array(
'type'=>'POST',
'url'=>Yii::app()->baseUrl.'/index.php?r=page/dynamicDropdownList',
'update'=>'#program_id'))); 

//empty since it will be filled by the above dropdown
echo CHtml::dropDownList('program_id','', CHtml::listData($result,'program_id','program_name'), array(
'empty'=>'- Select Program Name - ',
'onchange'=>'alert(this.value);',
'ajax'=> array(
'type'=>'POST',
'url'=>Yii::app()->baseUrl.'/index.php?r=page/dynamicProgramsList',
'update'=>'#ad_id')));
    //empty since it will be filled by the above dropdown
echo CHtml::dropDownList('ad_id','', CHtml::listData($results,'ad_id','ad_name'), array(
'empty'=>'- Select Ad Name - ',

));
?>
于 2013-01-22T22:17:03.323 に答える