File "picker04.html"

Full Path: /home/analogde/www/Design/fileman/Fusion/Picker/picker04.html
File size: 12.47 KB
MIME-type: text/html
Charset: utf-8

<!DOCTYPE html>
<html>

<!--
https://stackoverflow.com/questions/50168233/date-picker-start-date-end-date-query

 https://laracasts.com/discuss/channels/general-discussion/how-to-get-end-date-from-start-date-and-days-using-jquery-ui-datepicker

 https://www.plus2net.com/jquery/msg-demo/date-picker-range.php
 
 https://jqueryui.com/datepicker/#date-range
 
 https://makitweb.com/jquery-datepicker-to-filter-records-with-php-mysql/
 
 https://makitweb.com/jquery-datepicker-to-filter-records-with-php-mysql/
 
 https://stackoverflow.com/questions/1917576/how-do-i-pass-javascript-variables-to-php
 
 https://www.geminitutorials.com/php-and-javascript-exchange-variables/
 
 https://www.wikihow.com/Pass-Variables-from-Javascript-to-PHP
 
 https://www.davidangulo.xyz/posts/how-to-pass-value-from-javascript-to-php/
 
 https://stackoverflow.com/questions/7609130/set-the-default-value-of-an-input-field
 
 https://www.w3docs.com/snippets/php/passing-multiple-variables-to-another-page-in-url.html
 
 
-->

 <link rel="stylesheet" href="//code.jquery.com/ui/1.13.2/themes/base/jquery-ui.css">
  <link rel="stylesheet" href="/resources/demos/style.css">

<script src="https://code.jquery.com/jquery-3.6.0.js"></script>
<script src="https://code.jquery.com/ui/1.13.2/jquery-ui.js"></script>

<script>


	var year_tab = ["2024", "2025"]
	var jours_feries = [];
 
 	construction_jours_feries_fixe(year_tab);
	console.log(jours_feries);
	
	calcul_jours_feries(year_tab)
	console.log( jours_feries );

/*************************************************************/
function construction_jours_feries_fixe(year_tab)
{
 	for (let i = 0; i < year_tab.length; i++)
	{
		var nouvel_an = "01-01-" + year_tab[i];
		var fete_du_travail = "05-01-" + year_tab[i];
		var victoire_1945 = "05-08-" + year_tab[i]; 
		var fete_nationale = "07-14-" + year_tab[i];
		var assomption = "08-15-" + year_tab[i];  
		var toussaint = "11-01-" + year_tab[i]; 
		var armistice = "11-11-" + year_tab[i]; 
		var noel = "12-25-" + year_tab[i]; 
		jours_feries.push( nouvel_an, fete_du_travail, victoire_1945 , fete_nationale, assomption, toussaint, armistice, noel  );
	}
 }
/*************************************************************/
function calcul_jours_feries(year_tab)
 {
	for (let i = 0; i < year_tab.length; i++)
	{
		let month=calcul_date_jour_paques(year_tab[i])[0];
		let day=calcul_date_jour_paques(year_tab[i])[1];
		//document.getElementById('result').innerHTML="<h3>The easter date is: </h3><center><h2 class='text-primary'>"+m[month-1]+" "+day+", "+year+"</h2></center>";
	
		var lundi_paques = new Date(year_tab[i], month-1, day+1);
		var ascension = new Date(year_tab[i], month-1, day+39);
		var pentecote = new Date(year_tab[i], month-1, day+49);
		var lundi_pentecote = new Date(year_tab[i], month-1, day+50);
		jours_feries.push( format_jour_mois(lundi_paques), format_jour_mois(ascension), format_jour_mois(pentecote) , format_jour_mois(lundi_pentecote) );
	}
 }
/************************************************************/
function format_jour_mois(element)
 {
	let mm = element.getMonth() + 1; // month is zero-based
	let dd = element.getDate();
	let yyyy = element.getFullYear();

	if (dd < 10) dd = '0' + dd;
	if (mm < 10) mm = '0' + mm;

	const formatted =  mm + '-' + dd + '-' + yyyy;
	
	return(formatted);
 } 

/*************************************************************/
function calcul_date_jour_paques(year)
{
	let f = Math.floor;
	let G = year % 19;
	let	C = f(year / 100);
	let H = (C - f(C / 4) - f((8 * C + 13)/25) + 19 * G + 15) % 30;
	let I = H - f(H/28) * (1 - f(29/(H + 1)) * f((21-G)/11));
	let J = (year + f(year / 4) + I + 2 - C + f(C / 4)) % 7;
	let L = I - J;
	let month = 3 + f((L + 40)/44);
	let day = L + 28 - 31 * f(month / 4);
 
	return [month,day];
}
/*************************************************************/
 function disableDates(date) 
{
    var dt = $.datepicker.formatDate('mm-dd-yy', date);
    var noWeekend = jQuery.datepicker.noWeekends(date);
    return noWeekend[0] ? (($.inArray(dt, jours_feries) < 0) ? [true] : [false]) : noWeekend;
}
/************************************************************/

function operating(selectedDate)
{

	var day = selectedDate.getDate();
	var month = selectedDate.getMonth();
	month = month + 1;
	var year = selectedDate.getFullYear();	

	if( day < 10) 
	{
		day = "0" + day;
	}				
	if( month < 10) 
	{
		month = "0" + month;
	}	
	
	return(day + "-" + month + "-" + year);
				
}

/************************************************************/

$( function() {

	var startDate;
	var endDate;

    $( "#datepicker_date_start" ).datepicker( {
  beforeShowDay: disableDates,
  dateFormat: 'dd-mm-yy',
   monthNames: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],
  monthNamesShort: ['Janv.', 'Févr.', 'Mars', 'Avril', 'Mai', 'Juin', 'Juil.', 'Août', 'Sept.', 'Oct.', 'Nov.', 'Déc.'],
  dayNames: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],
  dayNamesShort: ['Dim.', 'Lun.', 'Mar.', 'Mer.', 'Jeu.', 'Ven.', 'Sam.'],
  dayNamesMin: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
  showWeek: true,
  weekHeader: 'Sem.'
} );
$.datepicker.setDefaults( $.datepicker.regional[ "fr" ] );

$( "#datepicker_date_end" ).datepicker( {
  beforeShowDay: disableDates,
  dateFormat: 'dd-mm-yy',
   monthNames: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],
  monthNamesShort: ['Janv.', 'Févr.', 'Mars', 'Avril', 'Mai', 'Juin', 'Juil.', 'Août', 'Sept.', 'Oct.', 'Nov.', 'Déc.'],
  dayNames: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],
  dayNamesShort: ['Dim.', 'Lun.', 'Mar.', 'Mer.', 'Jeu.', 'Ven.', 'Sam.'],
  dayNamesMin: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
  showWeek: true,
  weekHeader: 'Sem.'
} );
$.datepicker.setDefaults( $.datepicker.regional[ "fr" ] );

	///////
	$('#datepicker_date_start').change(function() 
	{
		startDate = $(this).datepicker('getDate');
		$("#datepicker_date_end").datepicker("option", "minDate", startDate );
	})

	///////
	$('#datepicker_date_end').change(function() 
	{
		endDate = $(this).datepicker('getDate');

		document.getElementById("btn_action").disabled = false;

		document.getElementById("submit").disabled = false;


		document.getElementById("date_start").value = operating(startDate);
		document.getElementById("date_end").value = operating(endDate)


		$("#datepicker_date_start").datepicker("option", "maxDate", endDate );
})



  } );

/************************************************************/
/*
function send()
{

		if (window.XMLHttpRequest)
		{
			xmlhttp = new XMLHttpRequest();
		}
		else
		{
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}

		/*
		var PageToSendTo = "nowitworks.php?";
		var MyVariable = "variableData";
		var VariablePlaceholder = "variableName=";
		var UrlToSend = PageToSendTo + VariablePlaceholder + MyVariable;

		xmlhttp.open("GET", UrlToSend, false);
		xmlhttp.send();*/
 /*
		xmlhttp.onreadystatechange=function()
		{
			if (xmlhttp.readyState==4 && xmlhttp.status==200)
			{
			document.getElementById("message").innerHTML=xmlhttp.responseText;
			}
		}
 
		var selectedDate = $( "#date_picker1" ).datepicker("getDate"); 
		var date_start = operating(selectedDate);
 
		selectedDate = $( "#date_picker2" ).datepicker("getDate"); 
		var date_end = operating(selectedDate);
 
		console.log(date_start + " " + date_end);
	
		//var winW = 630, winH = 460;
		//var queryString = "?width=" + winW + "&height=" + winH;

		// 1 seul champ
		//var queryString = "?date_start=" + date_start;
		
		// plusieurs champ
		var queryString = "?date_start=" + date_start + "&date_end=" + date_end;
	
		xmlhttp.open("GET","passage.php"+queryString,true);
		xmlhttp.send();	
}
*/

/*function myFunction() 
{

	 dayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
     monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];

	var selectedDate = $( "#date_picker1" ).datepicker("getDate"); 
    console.log(selectedDate);
			
	//alert(selectedDate);		
	 /* get the array of day names and month names from the date picker */
     //           var dayNames = $('#datePicker').datepicker('option', 'dayNames');
                /* default dayNames can be accessed using $.datepicker._defaults.dayNames; */
     //           var monthNames = $('#datePicker').datepicker('option', 'monthNames');
                /* default monthNames can be accessed using $.datepicker._defaults.monthNames; */

                /* assign are vars */
      //          var date = selectedDate.getDate();
       //         var day = dayNames[selectedDate.getDay()]; // taking the day name from the array of day names 
       //         var month = monthNames[selectedDate.getMonth()]; // taking the month name from the array of month names
                
/*				var day = selectedDate.getDate();
				var month = selectedDate.getMonth();
				month = month + 1;
				var year = selectedDate.getFullYear();	


				if( day < 10) 
				{
					day = "0" + day;
				}				
				if( month < 10) 
				{
					month = "0" + month;
				}	
			
				alert(day + "-" + month + "-" + year);
				//window.open("https://www.w3schools.com");
}
*/
	$(function()
	{
		///////
		var startDate;
		var endDate;
 
		$( "#date_picker1" ).datepicker({
		dateFormat: 'dd-mm-yy'
		})

		///////
		///////
		$( "#date_picker2" ).datepicker({
		dateFormat: 'dd-mm-yy'
		});

		///////
		$('#date_picker1').change(function() {
		startDate = $(this).datepicker('getDate');
		$("#date_picker2").datepicker("option", "minDate", startDate );
		})

		///////
		$('#date_picker2').change(function() 
		{
			endDate = $(this).datepicker('getDate');
			document.getElementById("btn_action").disabled = false;

			//////
			document.getElementById("submit").disabled = false;

			document.getElementById("date_start").value = operating(startDate);
			document.getElementById("date_end").value = operating(endDate)


			$("#date_picker1").datepicker("option", "maxDate", endDate );
		})

////////////////
})
</script>


<script>
function showResult(str) 
{
	if (str.length==0) 
	{
		document.getElementById("livesearch").innerHTML="";
		document.getElementById("livesearch").style.border="0px";
		return;
	}
  
	var xmlhttp=new XMLHttpRequest();
  
	xmlhttp.onreadystatechange=function() 
	{
		if (this.readyState==4 && this.status==200) 
		{
			document.getElementById("livesearch").innerHTML=this.responseText;
			document.getElementById("livesearch").style.border="1px solid #A5ACB2";
		}
	}
  
	xmlhttp.open("GET","livesearch.php?q="+str,true);
	xmlhttp.send();
}
</script>

<body>

<h1>Double calendrier</h1>

<p>Blabla.....................</p>

<div class="col-md-2">Date: Start Date <br> <input type="text" id="date_picker1" size=9></div>
<div class="col-md-2">Date: End Date <br> <input type="text" id="date_picker2" size=9></div>

<!--
<button onclick="myFunction()">Try it</button>
-->

<!--
<button onclick="send()">Request ...</button>
-->
<button id = "btn_action" onclick="toto()" disabled >Request ...</button>


<p id="message">A voir </p>

	<form method="post" name="form" action="destination02.php"> 
        <!--
		<input type="text" placeholder="Enter Data" name="data"> 
		-->
		
		<input type="hidden" id="date_start" name="date_start" >
		<input type="hidden" id="date_end" name="date_end" >
		<!--
		<input type="hidden" id="table" name="table" >
		-->
		 <input type="text" id="champ_table" name="champ_table" onkeyup="showResult(this.value)">
		 
		 
		 
		<!--
        <input id = "submit " type="submit" value="Submit" disabled > 
		-->
		
		<input id="submit" name="submit" type="submit"  disabled="disabled">
		
    </form> 

<!--
<form method="POST">

	  <input type="submit" value="Sumbit my choice"/>

</form>

-->

	<p>Date: <input type="text" id="datepicker_date_start"></p>
	
	<br>
	
	<p>Date: <input type="text" id="datepicker_date_end"></p>

</body>
</html>
<!--
https://www.tbs.fr/fr/chemise-homme-manches-courtes-micro-motif-bleu-marine-7927778.html
https://www.tbs.fr/fr/chemise-homme-a-motif-marine-5978963.html
https://www.tbs.fr/fr/chemise-homme-manches-courtes-coton/lin-bleu-9804792.html
-->