0

我在cakephp中有一个表单,它实现了一个下拉,如下:

echo $this->Form->input('city', array('type' => 'select','options' => $cities,              'label' => 'City'));

传递给视图的$cities数组类似于 Array ( [0] => London [1] => Tokyo )

该表单显示城市的名称(伦敦、东京、...)。

在提交表单时,表单会提交 id(键)(例如,如果用户选择了 London,则为“0”)。相反,我想将值(伦敦)作为文本。我需要在视图中进行哪些更改才能返回包含该值的字符串?

4

3 回答 3

2

您可以通过以下select方法指定:

    echo $this->Form->select('city', array(
        'London' => 'London',
        'New York' => 'New York',
        'Tokyo' => 'Tokyo'
    ));

将产生:

    <select name="data[Model][city]" id="ModelCity">
        <option value="London">London</option>
        <option value="New York">New York</option>
        <option value="Tokyo">Tokyo</option>
    </select>

参见:CakePHP 手册

于 2013-02-04T18:37:15.437 回答
2

Cake 用您提供的值填充选择。如果你需要一个城市的名字,你需要传递一个数组,你的键就是这个名字。

$foo = array('London'=>'London', 'Tokyo'=>'Tokyo');
于 2013-02-04T18:42:14.493 回答
1

将 $cities 数组格式化为关联数组,将“keys”和“values”都设置为城市名称;

 $cities = array(
     'London' => 'London',
     'Paris' => 'Paris',
     // etc.
 );
于 2013-02-04T18:39:05.407 回答