我是Yii框架中的一名新手。我想創建一個頁面。當下拉列表發生變化時,listview/gridview將通過下拉值進行更改。yii通過下拉列表更新clistview
這是我的看法
<div class="row">
<?php
$records = Company::model()->findAll();
$company_list = CHtml::listData($records, 'id', 'name');
echo CHtml::dropDownList('company_id','', $company_list,
array(
'onchange'=>"$.fn.yiiListView.update('ajaxListView', {url: '".Yii::app()->createUrl('department/dynamicsectionlist')."?company_id='+$('#company_id option:selected').val()})",
'prompt'=>'Please select a company',
)); ?>
</div>
<?php
$this->widget('zii.widgets.CListView', array(
'dataProvider'=>$dataProvider,
'itemView'=>'_view_section',
'id'=>'ajaxListView',
));
?>
這是模型
public function search()
{
// Warning: Please modify the following code to remove attributes that
// should not be searched.
$criteria=new CDbCriteria;
$criteria->compare('id',$this->id);
$criteria->compare('name',$this->name,true);
$criteria->compare('p_id',$this->p_id);
$criteria->compare('created',$this->created,true);
$criteria->compare('updated',$this->updated,true);
$criteria->compare('company_id',$this->company_id);
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}
這是控制器
public function actionDynamicsectionlist()
{
$company_id = $_POST['company_id'];
$criteria=new CDbCriteria();
$criteria->condition .= 't.id IN (SELECT t2.id, t2.name FROM department t2 WHERE t2.company_id = :company_id)';
$criteria->params[':company_id'] = $company_id;
$dataProvider = new CActiveDataProvider('Department', array('criteria' => $criteria,));
$this->render('sectionlist', array('dataProvider' => $dataProvider));
}
但它無法正常工作。請幫幫我。
Regads Tharsoe
如果你改變什麼'$ COMPANY_ID = $ _POST ['company_id'];'到'$ company_id = $ _GET ['company_id'];'在控制器中? – dInGd0nG 2012-07-16 07:42:26
檢查螢火蟲中的網絡標籤以查看發送到服務器的內容和/或嘗試回顯'$ _POST'和'$ _GET'的內容。同時檢查js/php錯誤。 – adamors 2012-07-16 08:32:49
我已經試過了。但不工作。當我使用螢火蟲追蹤時,company_id 沒有參數GET http://localhost/mmaig_ceo/ceo-control-system/index.php?r =&ajax = ajaxListView。 – 2012-07-16 08:35:55