Создать выпадающий список из нескольких массивов + класс PHP - PullRequest
0 голосов
/ 28 мая 2010

Хорошо, я пишу класс, который создает выпадающий список DOB. Я выясняю выпадающее меню (), кажется, работает, но не совсем. Код просто создает один раскрывающийся список, и под этим раскрывающимся списком все данные дня, месяца и года находятся в одном выборе. как:

<label>
<sup>*</sup>DOB</label>
<select name="form_bod_year">
<option value=""/>
<option selected="" value="0">1</option>
<option value="1">2</option>
<option value="2">3</option>
<option value="3">4</option>
<option value="4">5</option>
<option value="5">6</option>
..
<option value="29">30</option>
<option value="30">31</option>
<option value="1">January</option>
<option value="2">February</option>
..
<option value="11">November</option>
<option value="12">December</option>
<option selected="" value="0">1910</option>
<option value="1">1911</option>
..
<option value="98">2008</option>
<option value="99">2009</option>
<option value="100">2010</option>
</select>

Вот мой код, мне интересно, почему все данные в одной подборке. Это должно быть выделение дерева - День: Месяц: Год.

//dropdown connector
class DropDownConnector
{
  var $dropDownsDatas;
  var $field_label;
  var $field_name;
  var $locale;</p>

<p>function __construct($dropDownsDatas, $field_label, $field_name, $locale)
  {
    $this->dropDownsDatas = $dropDownsDatas;
    $this->field_label = $field_label;
    $this->field_name = $field_name;
    $this->locale = $locale;
  }
  function getValue(){
    return $_POST[$this->field_name];
  }
  function dropdown(){
    $selectedVal = $this->getValue($this->field_name);
    foreach($this->dropDownsDatas as $keys=>$values){
        foreach ($values as $key=>$value){
          $selected = ($key == $selectedVal ? "selected" : "" );
          $options .= sprintf('%s',$key,$value);
        };
    };
    return $select_start = "$this->field_desc".$options."";
  }
  function getLabel(){
    $non_req = $this->getNotRequiredData();
    $req = in_array($this->field_name, $non_req) ? '<sup></sup>' : '<sup>*</sup>';
    return $this->field_label ? $req . $this->field_label : '';
  }
  function __toString()
  {
    $id = $this->field_name;
    $label = $this->getLabel();
    $field = $this->dropdown();
    return 'field_name.'">'.$label.''.$field.'';
  }
}</p>

<p>function generateForm ($lang,$country_list,$states_list,$days_of_month,$month_list,$years){
  $xx = array(
              'form_bod_day' => $days_of_month,
              'form_bod_month' => $month_list,
              'form_bod_year' => $years);
  echo $dropDownConnector = new DropDownConnector($xx,'DOB','bod','en-US');
}</p>

<p>// Call php class to use class on external functionss.
$avInq = new formGenerator;
</p>


$lang='en-US';
echo generateForm ($lang,$country_list,$states_list,$days_of_month,$month_list,$years);

1 Ответ

0 голосов
/ 28 мая 2010

Хотя это может или не может работать для вас, я бы посоветовал взглянуть на Jquery UI Datepicker . Он предоставляет очень хороший и настраиваемый календарь, который может сэкономить вам много времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...