【问题标题】:Cakephp simple drop down list without database valuesCakephp 没有数据库值的简单下拉列表
【发布时间】:2014-01-13 08:41:49
【问题描述】:

如何在 Cakephp 中创建一个简单的下拉列表,我希望只显示三个值并且这些值不会来自数据库。我搜索了它,但我得到的只是如何在下拉列表中显示数据库值。但我不需要那个。我有一个休假申请表,员工可以使用它申请休假。该应用程序转到管理员,他可以选择三种状态:批准、搁置、拒绝。 我在 add.ctp 页面中试过这个:

$options = array('Approve', 'Put On Hold', 'Reject');
$selected = array('Put On Hold');
echo $this->Form->input('leave_status', array('multiple' => true, 'options' => $options, 'selected' => $selected));

但它没有添加休假状态,页面变为空白,下拉菜单也不像通常那样。它显示了所有三个选项,例如this,但我希望它像this 任何帮助或提示将不胜感激。谢谢。

【问题讨论】:

  • 参见 static enums 作为 DRY 方法,包括烘焙模板支持。

标签: php cakephp drop-down-menu cakephp-2.3


【解决方案1】:
echo $this->Form->input('leave_status', array( 'options' => $options, 'selected' => $selected));

'multiple' => true 不需要

【讨论】:

  • 非常感谢。有效。但未选择“暂停”。如何做到这一点?
  • try $selected = 0 as 0 是所选选项的索引
  • pardon: $selected = 1 as 'Put on Hold' 的索引为 1
  • 谢谢徐丁和阿里利亚。
  • "selected" 是错误的。使用默认值或通过控制器更好地设置默认值,如 here 所示以正确填充表单(验证/发布后非持久性)。
【解决方案2】:
    Try this code.....
    <?php 
$options = array('Approve'=>'Approve', 'Put On Hold'=>'Put On Hold', 'Reject'=>'Reject');
echo $this->Form->input('leave_status', array('type' => 'select', 'options' => $options, 'selected' => 'Put On Hold'));
?>

【讨论】:

    猜你喜欢
    • 2016-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    相关资源
    最近更新 更多