2022-02-11 16:01:16 +01:00

210 lines
8.1 KiB
JavaScript
Raw Blame History

//Cache et Iniitilise les différents element graphique de selection
var zSelBuch = document.getElementById("selectBuch");
var zSelSect = document.getElementById("selectSecteur");
var searchEspece = document.getElementById("choixEspece");
var zAffichEspece = document.getElementById("selectEspece");
zSelBuch.hidden = true;
zSelSect.hidden = true;
searchEspece.hidden = true;
zAffichEspece.hidden = true;
//Script pour le calendrier
var verrif = 0;
var alertActive = 0;
document.getElementById('selectD').onchange = function () {
var dateSelect = document.getElementById('selectD').value;
var date = Date.now();
if (Date.parse(dateSelect) < date) {
alert("Date déjà passer")
alertActive = 1;
document.getElementById("selectBuch").hidden = true;
document.getElementById("selectSecteur").hidden = true;
}
if (verrif == 0 && alertActive == 0) {
getBucheron();
document.getElementById("selectBuch").hidden = false;
verrif = 1;
}
alertActive = 0
console.log(alertActive + "alert");
console.log(verrif + "verif");
}
//Fin calendrier
selectBuch.onclick = function () {
var bucheron = zSelBuch.options[zSelBuch.selectedIndex].value;
console.log("bucheron =" + bucheron);
getSecteur()
}
selectSecteur.onclick = function () {
var secteur = zSelSect.options[zSelSect.selectedIndex].value;
console.log("secteur = " + secteur)
getEspece(secteur);
}
function cherche(catalog) {
//Appel la methode qui charge tous les produits
document.getElementById("choixEspece").addEventListener("keyup", function () {
//Initialise la variable options qui contiendra tout le html a integrer
AffichEspace(catalog, filtre.value);
})
}
function getBucheron() {
var file = "include/getBucheron.php"
var argument, valArgument = null;
getAll(zSelBuch, file, argument, valArgument);
}
function getSecteur() {
var file = "include/getSecteur.php";
var argument, valArgument = null;
getAll(zSelSect, file, argument, valArgument);
}
function getEspece(secteur) {
var file = "include/getEspece.php"
var argument = "selectSecteur="
getAll(searchEspece, file, argument, secteur)
}
function getAll(placeHTML, fichierPHP, argument, valArgument) {
var options = "";
placeHTML.innerHTML = "";
// Construction de la requ<71>te
httpRequest = new XMLHttpRequest();
// Code s'ex<65>cutant quand la r<>ponse du serveur est arriv<69>e
httpRequest.onreadystatechange = function () {
if (httpRequest.readyState === XMLHttpRequest.DONE) {
// tout va bien, une r<>ponse a <20>t<EFBFBD> re<72>ue
if (httpRequest.status === 200) {
// Succ<63>s
//Recupération des données sous forme JSON
var json = JSON.parse(httpRequest.responseText);
/* Mise de ce résultat dans une autre fonction (ce qui évite d'utiliser la fonction de base
* qui effectue une requette a chaque fois*/
var file = json;
//Appel de la methode cherche qui met en place le système de recherche
//Appel de la methode d'affichage de tout les produits
//produitBase(file, filtre.value);
if (placeHTML == zSelBuch) {
afficheBucheron(file);
}
if (placeHTML == zSelSect) {
afficheSecteur(file);
}
if (placeHTML == searchEspece) {
console.log("search")
cherche(file);
zAffichEspece.hidden = false;
}
} else {
alert("Erreur, status : " + httpRequest.status);
// il y a eu un probl<62>me avec la requ<71>te,
// par exemple la r<>ponse peut <20>tre un code 404 (Non trouv<75>e)
// ou 500 (Erreur interne au serveur)
}
} else {
// pas encore pr<70>te
}
};
// Initialisation et envoi de la requ<71>te
httpRequest.open('POST', fichierPHP, true);
httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
if (argument == null && valArgument == null) {
httpRequest.send();
} else {
httpRequest.send(argument + escape(valArgument));
}
}
function afficheBucheron(listB) {
verrif = 0;
//Initialisation de la variable affiche qui contiendra tout le html a intégrer
var options = "";
//parcours la liste des bucherons
for (var i = 0; i < listB.lesBucherons.length; i++) {
//Recupération des informations.
var id = listB.lesBucherons[i].id;
var nom = listB.lesBucherons[i].nom;
var prenom = listB.lesBucherons[i].prenom;
var complet = nom + " " + prenom;
//ajout du code HTML pour afficher les bucherons dans le select
options += "<option value='" + id + "'>" + complet + "</option>;"
}
//Insertion de la variable dans le html
document.getElementById("selectBuch").innerHTML = options;
}
function afficheSecteur(listS) {
zSelSect.hidden = false;
//Initialisation de la variable affiche qui contiendra tout le html a intégrer
var options = "";
//parcours la liste des bucherons
for (var i = 0; i < listS.lesSecteurs.length; i++) {
//Recupération des informations.
var id = listS.lesSecteurs[i].id;
var libelle = listS.lesSecteurs[i].libelle;
//ajout du code HTML pour afficher les bucherons dans le select
options += "<option value='" + id + "'>" + libelle + "</option>;"
}
//Insertion de la variable dans le html
zSelSect.innerHTML = options;
}
/*function cherche(listE) {
searchEspece.parentNode.hidden = false;
//Initialisation de la variable affiche qui contiendra tout le html a intégrer
var options = "";
//parcours la liste des bucherons
for (var i = 0; i < listE.lesEspeces.length; i++) {
//Recupération des informations.
var libelle = listE.lesEspeces[i].libelle;
//ajout du code HTML pour afficher les bucherons dans le select
options += "<option value='" + libelle + "'/>"
}
//Insertion de la variable dans le html
searchEspece.innerHTML = options;
}
*/
function AffichEspace(catalog, saisie) {
//Initialisation de la variable affiche qui contiendra tout le html a intégrer
var options = "";
//si la zone de saisie n'est pas vide, continue la methode
if (saisie != "") {
//parcours la liste des produit
for (var i = 0; i < catalog.lesEpeces.length; i++) {
//Si la chaine est contenue au début d'un num d'un des elements js, n'affiche que celui ci
if (catalog.lesEpeces[i].libelle.toLowerCase().indexOf(saisie.toLowerCase()) == 0) {
//Recupération des informations.
var libelle = catalog.lesEpeces[i].libelle;
//ajout du code HTML pour afficher les produits dans la variable
opt = "<option value='" + libelle + "'>" + libelle + "</option>;"
/*Si l'id du produit est différent d'une des valeurs des balise option
* présent dans zlProduit alors ajoute ce dernier dans la variable qui servira pour
* integrer le html dans zlProduit*/
if (zAffichEspece.querySelectorAll("option").value != id)
//incrémenation de la variable
options += opt;
}
}
//Insertion de la variable dans le html
zAffichEspece.innerHTML = options;
} else {
var affiche = "";
for (var i = 0; i < catalog.lesEpeces.length; i++) {
//Recupération des informations
var id = catalog.lesEpeces[i].id;
var libelle = catalog.lesEpeces[i].libelle;
//ajout du code HTML pour afficher les produits dans la variable
affiche += "<option value='" + id + "'>" + libelle + "</option>;"
//le "+=" veux dire de prendre l'ancien résultat et de l'addition avec le nouveau
}
//Insertion dans le html
zAffichEspece.innerHTML = affiche;
}
}