0

次のように、ドロップダウンを実装する Cakephp のフォームがあります。

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

$citiesビューに渡される配列は次のようになり ますArray ( [0] => London [1] => Tokyo )

フォームには都市名 (ロンドン、東京など) が表示されます。

フォームを送信すると、フォームは ID (キー) を送信します (例: ユーザーがロンドンを選択した場合は「0」)。代わりに、値 (London) をテキストとして取得したいと考えています。値を含む文字列を返すには、ビューにどのような変更を加える必要がありますか?

4

3 に答える 3

2

Cake は、指定された値で select を埋めます。都市の名前が必要な場合は、キーがこの名前になる配列を渡す必要があります。

$foo = array('London'=>'London', 'Tokyo'=>'Tokyo');
于 2013-02-04T18:42:14.493 に答える
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 に答える
1

$cities 配列を連想配列にフォーマットし、「キー」と「値」の両方を都市の名前に設定します。

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