Вывод раскрывающегося списка стран для просмотра - PullRequest
0 голосов
/ 29 июля 2011

У меня очень хорошо реализован помощник по списку стран, и я могу выбрать его довольно удачно.

Одна вещь, которую я сейчас пытаюсь решить, это как вывести выбранную страну для просмотра ...

Образец помощника:

class CountryListHelper extends FormHelper { 

    var $helpers = array('Form'); 

function select($fieldname) {
$list = $this->Form->input($fieldname , array(
    'type' => 'select', 'label' => 'Country of Residence', 'options' => array(
        '' =>   'Please select a country',
        'AF' => 'Afganistan',
        'AL' => 'Albania',
        'DZ' => 'Algeria',
        'AS' => 'American Samoa',
        'AD' => 'Andorra', 
        'AO' => 'Angola',
        'AI' => 'Anguilla',
        'AQ' => 'Antarctica',

код в режиме редактирования и добавления:

echo $this->CountryList->select('country');

Сохраняемые данные - это только аббревиатура (как показано во фрагменте кода помощника), и это то, что выводится в view.ctp (например, AF). Есть ли способ сделать поиск из помощника, чтобы сопоставить полное название страны с аббревиатурой и отправить его в view.ctp?

Фрагмент из view.ctp, который я пытаюсь изменить, чтобы отобразить полное название страны в сопоставлении только с аббревиатурой.

<dt<?php if ($i % 2 == 0) echo $class;?>><?php __('Country of Residence'); ?></dt>
        <dd<?php if ($i++ % 2 == 0) echo $class;?>>
            <?php echo $user['User']['country']; ?>
            &nbsp;
        </dd>

Большое спасибо заранее!

1 Ответ

1 голос
/ 29 июля 2011
class CountryListHelper extends AppHelper { 
   var $helpers = array('Form'); 
   var $countries = array(
    'AF' => 'Afganistan',
    'AL' => 'Albania',
    'DZ' => 'Algeria',
    ...)
function getCountry($country){
   return $this->countries[$country]; 
}
function select($fieldname){
   $list = $this->Form->input($fieldname , array(
   'type' => 'select', 'label' => 'Country of Residence', 'options' => $countries)

звонок из вида:

echo $this->CountryList->getCountry($user['User']['country']);
...