如何在 yii 的更新视图中加载多个下拉列表中的选定值?
How to load selected values in multiple-dropdown in update view in yii?
我是yii新手。更新记录时,我无法在下拉列表中获取 selected 值。
我有多个 selection 用户电子邮件的下拉列表。
当添加它工作正常时,它允许我 select 多个值并且可以插入 selected 值的 ids 在数据库中用逗号分隔。
但问题是当我想更新记录时它仅显示 1 selected 记录。
这是我的代码:
在我的查看文件中:
<div class="controls">
<?php echo $form->dropDownList($model, 'uid', $allUsers, array('class' => 'select2-me input-sel_large', 'multiple' => 'true', 'options' => array('' => array('selected' => true)))); ?>
<?php echo $form->error($model, 'uid') ?>
</div>
在我的控制器文件中:
$model = new User;
$allUsers = $model->getAllUsers();
在我的模型文件中:
public function getAllUsers() {
$arr = Yii::app()->db->createCommand()
->select('userEmail,pkUserID')
->from('tbl_user')
->queryAll();
$users = array();
if (is_array($arr)) {
foreach ($arr as $value) {
$users[$value['pkUserID']] = $value['userEmail'];
}
}
return $users;
}
有人能帮忙吗?
例子。希望对你有帮助。
class YourForm extends CFormModel
{
public $uid = array(); // selected pkUserID's
}
//in action
$yourForm = new YourForm();
$yourForm->uid = array(1,2,3); // for example selected users with pk 1,2,3
$this->render('your_view', array('yourForm'=>$yourForm));
//view
/** @var CActiveForm $form */
/** @var YourForm $yourForm */
echo $form->dropDownList(
$yourForm,
'uid',
CHtml::listData(User::model()->findAll(array('order' => 'userEmail ASC')), 'pkUserID', 'userEmail'),
array('empty' => '', 'multiple'=>true))
)
我是yii新手。更新记录时,我无法在下拉列表中获取 selected 值。
我有多个 selection 用户电子邮件的下拉列表。
当添加它工作正常时,它允许我 select 多个值并且可以插入 selected 值的 ids 在数据库中用逗号分隔。
但问题是当我想更新记录时它仅显示 1 selected 记录。
这是我的代码:
在我的查看文件中:
<div class="controls">
<?php echo $form->dropDownList($model, 'uid', $allUsers, array('class' => 'select2-me input-sel_large', 'multiple' => 'true', 'options' => array('' => array('selected' => true)))); ?>
<?php echo $form->error($model, 'uid') ?>
</div>
在我的控制器文件中:
$model = new User;
$allUsers = $model->getAllUsers();
在我的模型文件中:
public function getAllUsers() {
$arr = Yii::app()->db->createCommand()
->select('userEmail,pkUserID')
->from('tbl_user')
->queryAll();
$users = array();
if (is_array($arr)) {
foreach ($arr as $value) {
$users[$value['pkUserID']] = $value['userEmail'];
}
}
return $users;
}
有人能帮忙吗?
例子。希望对你有帮助。
class YourForm extends CFormModel
{
public $uid = array(); // selected pkUserID's
}
//in action
$yourForm = new YourForm();
$yourForm->uid = array(1,2,3); // for example selected users with pk 1,2,3
$this->render('your_view', array('yourForm'=>$yourForm));
//view
/** @var CActiveForm $form */
/** @var YourForm $yourForm */
echo $form->dropDownList(
$yourForm,
'uid',
CHtml::listData(User::model()->findAll(array('order' => 'userEmail ASC')), 'pkUserID', 'userEmail'),
array('empty' => '', 'multiple'=>true))
)