yii ajax依赖下拉问题

时间:2014-07-28 05:52:22

标签: php yii

我正在研究ajax依赖的下拉工作正常,但有一个问题就在那里,依赖于另一个下拉列表的dropdownn有一个提示-----"选择"。但当父下拉列表是选择相关下拉列表中的提示失败并填充相关数据,我希望提示应该出现在那里,用户应该从下拉列表中选择。 现在由difault第一个数据被选中

   view form code
<div class="row">
php echo $form->labelEx($model, 'quarter'); ?>
 <?php
$options = array(1 => 'First', 2 => 'Second', 3 => 'Third', 4 => 'Fourth');
$curMonth = date("m", time());
$curQuarter = ceil($curMonth/3);
  $qr = array();
 $qr[$curQuarter] = $options[$curQuarter];
 $qr[$curQuarter-1] = $options[$curQuarter-1];
echo $form->dropDownList($model, 'quarter', $qr,array(
'prompt' => 'Select a quarter',
ajax' => array(
'type' => 'POST',
'url' => Yii::app()->controller->createUrl('dynamicProjectUserRoles'),
'update' => '#A2fs_role_id'
 )
 )) ?>
 <?php echo $form->error($model, 'quarter'); ?>
 </div>

 <div class="row">
 <?php echo $form->labelEx($model, 'role_id'); ?>
 <?php echo $form->dropDownList($model, 'role_id', array(),array(
  'prompt' => 'Select a role',
  'ajax' =>array(
  'type' => 'POST',
  'url' => Yii::app()->controller->createUrl('questions'),
   'update' => '#ques'
   ) 
   )); ?>
   <?php echo $form->error($model, 'role_id'); ?>
   </div>

//控制器代码

 public function actionDynamicProjectUserRoles() {
$project_id = $_POST['A2fs']['project_id'];
$quarter = $_POST['A2fs']['quarter'];
$employee = $_POST['A2fs']['employee_id'];
//$this->pr($project_id);
$id = $this->getEmployeeId($employee);
$conditon = $this->getQuarterDate($quarter);
// find roles of partcular employee
$q = "SELECT role_id FROM employee_project_role WHERE employee_id=$id AND project_id = $project_id and $conditon ";
$cmd = Yii::app()->db->createCommand($q);
//$result = $cmd->queryRow();
$role = $cmd->queryAll();
foreach ($role as $r){
$criteria = new CDbCriteria();
$criteria = array(
'select' => 'role',
'condition' => 'id=:id',
'params' => array(
':id' => $r['role_id']
)
);
$name = Role::model()->find($criteria);
echo CHtml::tag('option',
array(),CHtml::encode($name->role),true);
}
}

1 个答案:

答案 0 :(得分:0)

这是它的工作原理 - 它通过给定的ID呈现整个元素。只需添加

echo CHtml::tag('option', array('value' => ''), 'Select a role', true);

foreach ($role as $r){

在控制器文件中。