За последние 24 часа нас посетили 26337 программистов и 1535 роботов. Сейчас ищут 883 программиста ...

select в виде array?

Тема в разделе "PHP для новичков", создана пользователем Freakmeister, 20 дек 2009.

  1. Freakmeister

    Freakmeister Активный пользователь

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    Помогите плз, пытаюсь добавить дополнительные графы в модуль гостевухи, не могу разобраться с синтаксисом. На старом движке у меня было так:
    PHP:
    1. <select name='Sex' class='textbox'>\n<option>--</option><option>Male</option><option>Female</option>
    А в новом движке все графы сделаны в виде array, и я не могу понять как вживить туда select вместо textfield:
    PHP:
    1.       $form['anonsex'] = array(
    2.         '#type' => 'textfield', '#title' => t('Sex'),
    3.         '#size' => 32, '#maxlength' => 32, '#required' => TRUE,
    4.       );
    '#required' => TRUE здесь значит "обязателен для заполнения".
     
  2. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    посмотри, как движок обрабатывает параметр #type, какие еще там значения допустимы.
     
  3. Freakmeister

    Freakmeister Активный пользователь

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    Мда.. глупо. Думал, что это от незнания php, а оказалось что тут надо мануал по движку читать. Вобщем, получилось сделать только так:
    PHP:
    1. function _get_sex() {
    2.   return array(
    3.     n => t(''),
    4.     m => t('Male'),
    5.     f => t('Female'),
    6.   );
    7. }
    8.  
    9. //...разрыв...
    10.  
    11.         $form['anonsex'] = array(
    12.         '#type' => 'select',
    13.         '#title' => t('Sex'),
    14.         '#options' => _get_sex(),
    15.       );
    Как избавиться от функции не знаю.
     
  4. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    '#options'=>array( 'n' => t(''), 'm' => t('Male'), 'f' => t('Female'), ),
     
  5. Freakmeister

    Freakmeister Активный пользователь

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    Спасибо, всё работает, но только без t:
    '#options' => array('' => '', 'male' => 'Male', 'female' => 'Female'),