Показать сообщение отдельно
  #6 (permalink)  
Старый 10.06.2018, 06:37
Интересующийся
Отправить личное сообщение для racheev Посмотреть профиль Найти все сообщения от racheev
 
Регистрация: 29.04.2018
Сообщений: 11

рони,

если приходит пустая positions то календарь не формируется... я добавил проверку. но самое важное что при переходе на следующий месяц не отмечает даты которые заняты.



<script>
$(document).ready( function() {
//	$('#fset_calendar').hide();
});
$('#country_slug').on('change', function() {
	var country_slug = $(this).val();
	if (country_slug) {
		$('#fset_calendar').show();
		cal();
	} else {
		$('#fset_calendar').hide();
	}
});

function cal(dat) {
	
	/// сбрасываем все переменные
	for (i = 1; i <= 42; i++) {
		$("#col" + i).html('');
		$("#week" + i).show();
		$("#prev").show();
	}	
	/// зпросим данные по календарю
	$.ajax({
		type: 'GET',
		url: '/positions/get_calendar',
		data: {
			date: dat
		}
	}).done(function( result ) {
		/// распарсим что пришло
		var db = JSON.parse(result);
/// если db['positions'] пустая календарь не формируется
		if (db['positions']) {
			var view = db['positions'];
		} else {
			var view = ["d","0"];
		}
		console.log(view);

var busy = view.map(function(e) {
    return +e.d
});
var length = +db['dayofmonth'];
var today = +db['today'];
var day = +db['day'];
for (var i = 0; i < length; i++) {
var num = i + 1;
var html = num + '<br><input class="check" type="checkbox" name="day_view[]" value="" onclick="clk(this);">';
if ((busy.indexOf(num) > -1 || num <= today) && db['month'] <= db['tomonth'] ) html = num + '<br>-';
var id = "#col" + (i + day);
$(id).html(html).toggleClass("red", num == today)
}
		
				


//alert();



		$("#date").html(db['date'] + '<input type="hidden" name="date_show[]" value="'+ db['date'] +'">');
		/// соберем календарь
		
		/*
			for (i = 1; i <= db['dayofmonth']; i++) {
			/// вычисляем день по счету с какого начинается неделя 
			var d = parseInt(db['day']) + parseInt(i) - parseInt(1);
			/// если сегодня меньше и то не показывать чекбокс
			if (db['today'] >= i && db['month'] <= db['tomonth']) {
				$("#col" + d).html(i + '<br>-');
			} else {
				if (view) {
//					if (i === view[0]['d']) {
//						console.log(view[0]['d']);
//					}
					//for(k=0; k < view.length; k++) {
						//if (view[i] == i) {
							
							//console.log(i);
						//}
						//else {
							
						//}	
					//}
				}

				//if (view[i] == i) {
				//	$("#col" + d).html(i + '<br>-');
				//} else {
					$("#col" + d).html(i + '<br><input class="check" type="checkbox" name="date_show[]" value="'+ i +'" onclick="clk(this);">');
				//}

				
				
				
					
				
				
				
				
			}
		}
		*/
		/// вычислим сколько недель и спрячем ненужное
//		var a = Math.ceil(parseInt(d) / 7);
//		if (a == '5') {$("#week6").hide();}
//		if (a == '4') {$("#week5").hide();$("#week6").hide();}
//		if (db['month'] <= db['tomonth']) {$("#prev").hide();}
		/// ссылки на переход туда сюда
		next = db['next'];
		prev = db['prev'];
		today = db['today'];
	});
}

cal();
</script>
<div id="calendar" align="center">
<table class="tablecall">
	<tr>
		<td>
			<a class="arrow" id="prev" onclick="cal(prev);"> <<< </a>
		</td>
		<td>
<table class="tablecall">
	<tr class="trcall">
		<td colspan="7">Выбираем <span id="date"></span></td>
	</tr>
	<tr class="trcall">
		<td>Пн</td>
		<td>Вт</td>
		<td>Ср</td>
		<td>Чт</td>
		<td>Пт</td>
		<td><font color="red">Сб</font></td>
		<td><font color="red">Вс</font></td>
	</tr>
	<tr class="day">
		<td id="col1"></td>
		<td id="col2"></td>
		<td id="col3"></td>
		<td id="col4"></td>
		<td id="col5"></td>
		<td id="col6"></td>
		<td id="col7"></td>
	</tr>
	<tr class="day">
		<td id="col8"></td>
		<td id="col9"></td>
		<td id="col10"></td>
		<td id="col11"></td>
		<td id="col12"></td>
		<td id="col13"></td>
		<td id="col14"></td>
	</tr>
	<tr class="day">
		<td id="col15"></td>
		<td id="col16"></td>
		<td id="col17"></td>
		<td id="col18"></td>
		<td id="col19"></td>
		<td id="col20"></td>
		<td id="col21"></td>
	</tr>
	<tr class="day" id="week4">
		<td id="col22"></td>
		<td id="col23"></td>
		<td id="col24"></td>
		<td id="col25"></td>
		<td id="col26"></td>
		<td id="col27"></td>
		<td id="col28"></td>
	</tr>
	<tr class="day" id="week5">
		<td id="col29"></td>
		<td id="col30"></td>
		<td id="col31"></td>
		<td id="col32"></td>
		<td id="col33"></td>
		<td id="col34"></td>
		<td id="col35"></td>
	</tr>
	<tr class="day" id="week6">
		<td id="col36"></td>
		<td id="col37"></td>
		<td id="col38"></td>
		<td id="col39"></td>
		<td id="col40"></td>
		<td id="col41"></td>
		<td id="col42"></td>
	</tr>

</table>
	</td>
		<td><a class="arrow" onclick="cal(next);"> >>> </a></td>
	</tr>
</table>
</div>
Ответить с цитированием