【问题标题】:cakephp display array name in form input options instead of variablecakephp 在表单输入选项中显示数组名称而不是变量
【发布时间】:2013-05-30 11:03:29
【问题描述】:

如果我有一个数组,例如

[Yellow] => 1 [Red] => 2 [Blue] => 3

然后想在带有 $options 的表单 INPUT 中使用这些来进行下拉选择,是否可以使用颜色名称 Yellow/Red/Blue 而不是值 1/2/3?

目前下拉菜单有 1、2、3 作为选项而不是名称。该数组在其他地方使用,并且出于某种原因采用格式。

【问题讨论】:

    标签: arrays forms cakephp input


    【解决方案1】:

    您可以使用array_flip 方法来交换键和值

    $array = array('Yellow' => 1, 'Red' => 2, 'Blue' => 3);
    
    $flippedArray = array_flip($array);
    
    // => [1] => 'Yellow', [2] => 'Red', [3] => 'Blue'
    

    然后将 flippedArray 用作带有表单助手的选择元素中的选项

    echo $this->Form->select('colours', $flippedArray);
    

    或者您可以将颜色组合成一个新数组用于选择元素

    $combinedArray = array_combine(array_keys($array), array_keys($array));
    
    //=> [Yellow] => 'Yellow', [Red] => 'Red', [Blue] => 'Blue'
    
    echo $this->Form->select('colours', $combinedArray);
    

    如果需要,您可以使用从表单传回的值作为原始数组的键

    【讨论】:

    • 太棒了,感谢您的选择,第二个会很好吃!
    猜你喜欢
    • 1970-01-01
    • 2013-07-27
    • 2019-08-16
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    • 1970-01-01
    • 2012-07-13
    • 1970-01-01
    相关资源
    最近更新 更多