1
这应该是很简单,但我`吨修复它:/日历下拉错误
我使用的显示月份列表的组成部分,即将到来的12要准确。但是,去年12月,这一年并没有改变到2012年。
在这里看到: http://protekco.com/index.php/en/reservation.html
并调用它的代码:
echo AHtml::getMonthsSelect('imonth', (int) $month, $year, $currentMonth, $currentYear, $config->calendarDeepMonth, 'onchange="Calendars.monthNavigation(this.value)"'); ?>
的$ currentYear是呈现在网站上的实际年变量。如果我们已经过了年底,基本上需要添加+1。有任何想法吗?
谢谢!
编辑:这里是个数组:
function getMonthsSelect($name, $selectedMonth, $selectedYear, $month, $year, $deep, $attribs = '')
{
$months = array(1 => JText::_('January') , 2 => JText::_('February') , 3 => JText::_('March') , 4 => JText::_('April') , 5 => JText::_('May') , 6 => JText::_('June') , 7 => JText::_('July') , 8 => JText::_('August') , 9 => JText::_('September') , 10 => JText::_('October') , 11 => JText::_('November') , 12 => JText::_('December'));
$stop = $month + $deep;
for ($i = $month; $i < $stop; $i ++)
$arr[] = JHTML::_('select.option', ($key = (! ($k = $i % 12) ? 12 : $k)) . ',' . ($y = (floor(($i - $month)/12) + $year)), ($months[$key] . '/' . $y));
return JHTML::_('select.genericlist', $arr, $name, $attribs, 'value', 'text', $selectedMonth . ',' . $selectedYear);
}
编辑3:最后的解决方案:
function getMonthsSelect($name, $selectedMonth, $selectedYear, $month, $year, $deep, $attribs = '')
{
$months = array(1 => JText::_('January') , 2 => JText::_('February') , 3 => JText::_('March') , 4 => JText::_('April') , 5 => JText::_('May') , 6 => JText::_('June') , 7 => JText::_('July') , 8 => JText::_('August') , 9 => JText::_('September') , 10 => JText::_('October') , 11 => JText::_('November') , 12 => JText::_('December'));
$stop = $month + $deep;
$wheremonth = 12 - $month;
for ($i = $month; $i < $stop; $i ++, $wheremonth--)
if ($wheremonth >= 0) {
$arr[] = JHTML::_('select.option', ($key = (! ($k = $i % 12) ? 12 : $k)) . ',' . ($y = (floor(($i - $month)/12) + $year)), ($months[$key] . '/' . $y));
}
else { $arr[] = JHTML::_('select.option', ($key = (! ($k = $i % 12) ? 12 : $k)) . ',' . ($y = (floor(($i - $month)/12) + $year+1)), ($months[$key] . '/' . $y));
}
return JHTML::_('select.genericlist', $arr, $name, $attribs, 'value', 'text', $selectedMonth . ',' . $selectedYear);
}
感谢您的帮助;已经有了诸如Currentmonth和NextYear等变量,它们适用于大型底部日历。当点击日历底部的“下个月”链接时,它会将当前月份值加1,直到达到12为止。然后,它将+1值添加到当前年份,并将currentmonth重置为1等。我只是不知道如何在下拉选择框中完成预加载! – Sherif
那么你必须跟踪,如果你已经使用了某个月。也许在您循环添加月份时创建$月的数组。每次循环时检查数组,如果$ month存在,则设置$ currentYear + 1. –
这听起来像是一个完美的解决方案。但是我真的不熟悉构建数组,但是,如果您可以删除一行或两行代码,将不胜感激! – Sherif