2013-10-18 20 views
0

我有下面这个小工具:Yii的DropDownListRow:地图布尔值到下拉选项

<?php 
    echo $form->dropDownListRow($model, 'status', array('Active','Inactive'), 
     array(
     'id'=>'status-list', 
     'class'=>'span5', 
     'data-placement'=>'right'   
      )               
     ); 
?> 

我用上面的东西是否是活动还是不创建一个选项。 但是,这不会提交布尔值'真'或'假',而是字符串'有效'和'无效',我如何使它提交基于选择的布尔值? 主动意味着真实,非主动意味着虚假?谢谢!

+0

array('true','false')??? – Hackerman

+0

呀但是。它会显示“1”和“”(空白),我希望它显示'有效'和'无效',同时映射真值和假值, – muffin

+0

array('Active'=>'true','Inactive'= >'false')...和键功能? – Hackerman

回答

1

如果dropDownListRow()函数的工作原理相同CActiveForm :: DROPDOWNLIST()

您需要提供一键=>值数组。 其中key是发送到服务器的下拉选项值,value是用户看到的选项显示字符串。

例如,对于您的示例尝试

<?php 
    echo $form->dropDownListRow($model, 'status', array('true' => 'Active', 'false' => 'Inactive'), 
     array(
     'id'=>'status-list', 
     'class'=>'span5', 
     'data-placement'=>'right'   
      )               
     ); 
?> 

欲了解更多信息请参阅http://www.yiiframework.com/doc/api/1.1/CHtml#activeDropDownList-detail

编辑: 注意,这将发送字符串真或假的服务器,而不是一个布尔值。因此,在比较或转换值时需要考虑到这一点。

+0

谢谢..这实际上工作..但是,关键值配对是: true =>'主动'没有单引号为真,这样的帖子将包含布尔值..感谢无论如何这个想法! – muffin

+0

注意如果你这样做,不用引号,你的数组将被转换为'array(1 =>'Active',0 =''Inactive')',因为PHP不允许布尔值作为数组键 – Rowan