• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Ograniczenie zapisu w kalendarzu

Object Storage Arubacloud
0 głosów
69 wizyt
pytanie zadane 21 kwietnia 2017 w JavaScript przez Alterwar Dyskutant (7,650 p.)

[JavaScript]

Witam,

może najpierw krótko opiszę funkcję którą posiadam a później przedstawię problem.

Mam użytkowników, którzy mogą zapisywać się na kurs poprzez wybieranie dat z kalendarza. User może zapisać się w jednym tygodniu na maksymalnie 3 kursy. Dodatkowo każdy kurs może odbyć  się raz na  dzień. Dla przykładu: od dziś tj. 21.04 mogę  zapisać się 3  razy  do 28.04 ale w każdy inny  dzień.

Na każdy tydzień  user powinien  móc  się zapisać max 3 razy. I tu  jest problem. Potrafię ograniczyć zapisy na tydzień ale na dwa/trzy już nie. Doszedłem do momentu  w którym teroetycznie dzialł zapis na kolejny tydzień ale wtedy można bylo sie dopisać w poprzednim tygodniu. wklejam kod, ma ktoś pomysl jak to ugryźć?

function checkButton(){

		var kurs = document.getElementById('kurs').value;
		var instruktor = document.getElementById('ins').value;
		var data = document.getElementById('my_hidden_input').value;
		var dateMaxToday = document.getElementsByClassName('data-check-drive');
		var hourOd = document.getElementById('hour-od');
		var hourDo = document.getElementById('hour-do');

		

		if(kurs == '' || instruktor == '' || data == '' || hourOd.value === "" || hourDo.value === "")
		{
			p.style.marginTop = "30px";
			p.innerHTML = "Uzupełnij wszystkie pola.";
			showInfo();
		}
		else if(hourOd.value === "undefined" || hourDo.value === "undefined" || hourOd.value === "Nie możesz się zapisać" || hourDo.value === "Nie możesz się zapisać")
		{
			p.innerHTML = "Nie możesz się zapisać w tym terminie";
			showInfo();
		}
		else if(makeHourDrivePrakt.value !== finishHourDrivePrakt.value)
		{
			p.innerHTML = "Kurs został ukończony, nie możesz się zapisać na kolejne jazdy.";
			showInfo();
		}
		else if(dateMaxToday.length !== 0)
		{
			var counterAllDate = 0;
			var counter = 0;
			var nextTerminDate = "";
			for (var i = 0; i < dateMaxToday.length; i++)
			{
				nextTerminDate = dateMaxToday[0].value;
				
				if(dateMaxToday[i].value === data)
				{
					counter ++;
				}

				counterAllDate++;
				console.log(counterAllDate);
			}

			var someDate = new Date(nextTerminDate);
			someDate.setDate(someDate.getDate() + 7); //number  of days to add, e.x. 15 days
			var dateFormatedForWeek = someDate.toISOString().substr(0,10);

			if(counter > 0)
			{
				p.innerHTML = "Już zapisałeś się na jazdy w tym dniu.";
				showInfo();
			}
			else if(counterAllDate === 3)
			{
				console.log(dateFormatedForWeek);
				console.log(data);
				if(data <= dateFormatedForWeek)
				{
					p.innerHTML = "Wykorzsytałeś już zapisy na ten tydzień.";
					showInfo();
				}
				else
				{
					document.getElementById('form-data').action=''; 
					document.getElementById('form-data').submit();
				}
			}
			else
			{
				document.getElementById('form-data').action=''; 
				document.getElementById('form-data').submit();
			}
		}
		else if(dateMaxToday.length === 0)
		{
			document.getElementById('form-data').action=''; 
			document.getElementById('form-data').submit();
		}

	};

	btnSaveMeCours.addEventListener('click', checkButton);


 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 115 wizyt
pytanie zadane 2 września 2020 w JavaScript przez syjamski Nowicjusz (120 p.)
0 głosów
1 odpowiedź 202 wizyt
pytanie zadane 28 października 2019 w JavaScript przez Sh4d0wf4ce Nowicjusz (120 p.)
0 głosów
1 odpowiedź 501 wizyt
pytanie zadane 21 lutego 2019 w JavaScript przez aniaska4 Obywatel (1,010 p.)

92,568 zapytań

141,422 odpowiedzi

319,638 komentarzy

61,957 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...