Intereting Posts
Загрузка изображения Codeigniter не работает Закрытие тега PHP – когда это необходимо? Почему этот facebook создает код альбома, создавая дубликаты альбомов? Быстрее или лучше использовать MySQL вместо текстовых файлов или имен файлов для порядка изображений с PHP? SQLSTATE : Нарушение ограничения целостности: 1452 Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не выполняется Должен ли я отказаться от Adobe Flash для HTML5 и <canvas>? Как получить сообщение / получить запрос в codeigniter Как Laravel 4 загружает отложенного поставщика? Загрузка контроллера из другого модуля в CodeIgniter HMVC Curl, возвращающий «Идентификатор ресурса № 2» в качестве ответа, почему? PHP получает значения, разделенные запятыми, которые не вложены exec (): цитирование полной команды в Windows Как отличить объекты SimpleXML от элемента и атрибута? PHP: найдите дубликаты на основе некоторых значений ключа и выполните операцию по дублированию Доступ к константам класса PHP

Настройка живого обновления при выборе выпадающего списка

В настоящее время я настроил выпадающее меню, которое выполняет три функции:

  • По умолчанию он выбирает дату 48 часов в будущем и текущий месяц
  • Чтобы предотвратить выбранную в прошлом дату, она отображает только выбранную дату до конца текущего месяца
  • Еще одним ограничением системы является то, что она показывает все месяцы до конца календарного года

Но теперь у меня проблема! Позвольте мне использовать этот пример, чтобы объяснить мои трудности

  • На момент написания даты по умолчанию 23 сентября. Другие даты не доступны до 23 сентября
  • У пользователя есть возможность выбора дат с 23 сентября по 31 сентября
  • Пользователь также имеет возможность выбирать месяцы с сентября по декабрь

Теперь проблема возникает, когда пользователь пытается выбрать дату из другого месяца. Ограничение по дате по-прежнему существует! Поэтому, если я переключусь на октябрь, я могу выбирать даты только с 23 октября по 31 октября. Это неправильно, потому что я хочу выбрать даты с 1 октября по 31 октября.

Как обновить раскрывающийся список в реальном времени, чтобы обновить запись даты, когда пользователь переключится на другой месяц?

Вот код, который я использую прямо сейчас:

<label for="date"><?php echo __('Pickup Date') ?> <span>*</span></label> <?php $curr_day = date('j', strtotime('+ 48 hours')); $day = range (1, 31); $day = array_slice($day, $curr_day-1); $select = "<select name=\"day\">\n"; foreach ($day as $key => $val) { $select .= "\t<option val=\"".$key."\""; if ($key == $curr_day) { $select .= " selected=\"selected\">".$val."</option>\n"; } else { $select .= ">".$val."</option>\n"; } } $select .= "</select>"; echo $select; ?> &nbsp;:&nbsp; <?php $curr_month = date("m"); $month = array (1=>"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); $month = array_slice($month, $curr_month-1); $select = "<select name=\"month\">\n"; foreach ($month as $key => $val) { $select .= "\t<option val=\"".$key."\""; if ($key == $curr_month) { $select .= " selected=\"selected\">".$val."</option>\n"; } else { $select .= ">".$val."</option>\n"; } } $select .= "</select>"; echo $select; ?> 

Спасибо заранее!

Вы будете использовать JavaScript, чтобы сделать это эффективно, jQuery, если вы проворны.

 $('select').change(function(){ updatetheselect; }); 

Чтобы сделать это, создайте страницу PHP, которая выводит значения в массиве json с помощью json_encode() :

 {"option1":"value"} 

Затем используйте AJAX для извлечения информации и ее анализа:

 $.getJSON('jsonstuff.php',{month:'august'},function(json) { json.each(function(key,value){ $('select').append('<option value="'+key+'">'+value+'</option>'); }); }); 

Эта функция не проверена.

http://jsfiddle.net/tBrXt/2/