Commit 926df6ec authored by Nathan Peraldi's avatar Nathan Peraldi

improve: select-size's label in function of first select

parent 7da2dd86
......@@ -16,7 +16,7 @@ function displayMask(display) {
}
function displayMaskOptions(display) {
//sert à afficher / cacher les options du 2e select menu
//sert à afficher / cacher les options du 2e select menu, et modifier le label qui va avec
var toutesLesOptions = document.getElementsByName("optionSelect2");
......@@ -34,9 +34,17 @@ function displayMaskOptions(display) {
}
toutesLesOptions[j].hidden = false;
//on affiche le label
document.getElementById("TYPENBR-"+toutesLesOptions[j].getAttribute("class")).style.display="block";
console.log ("on affiche " + document.getElementById("TYPENBR-"+display));
} else {
console.log(display + "=/=" + toutesLesOptions[j].getAttribute("class"));
toutesLesOptions[j].hidden = true;
//On cache le label
document.getElementById("TYPENBR-"+toutesLesOptions[j].getAttribute("class")).style.display="none";
}
}
}
......
......@@ -4,6 +4,42 @@
Template Name: Formulaire d'adhésion
*/
//on vérifie si un formulaire est entrant
$numberOfErrors = 0;
if (isset($_POST)) {
if (isset($_POST["firstSelection"])) {
include "traitementAdhesion.php";
if ($debug_mode) {
echo "<br> début du traitement <br>";
}
$errors = traitement($_POST, $errors);
if ($debug_mode) {
echo "<br> fin du traitement <br>";
}
foreach ($errors as $key => $value) {
if ($debug_mode) {
echo $key . " : " . $value . "<br>";
}
if (strlen($value) > 0) {
$numberOfErrors += 1;
}
}
if ($debug_mode) {
echo "<br> nombre d'erreurs : " . $numberOfErrors . " <br>";
var_dump($errors);
}
if ($numberOfErrors == 0) {
sendAdhesionMail($_POST);
header("Location:");
}
}
}
$errors = array(
//Liste des éléments pouvant avoir une erreur
......@@ -34,6 +70,178 @@ $debug_mode = false;
$resultat = false;
function createFirstSelectionList($liste)
{
//fonction qui crée la première liste de sélection sans modifier les textes
$listeTempo = [];
for ($a = 0; $a < count($liste); $a++) {
$mot = $liste[$a][0];
if (!isWordIn($mot, $listeTempo)) {
$listeTempo[] = $mot;
}
}
return $listeTempo;
}
function createNameClass($variable)
{
//fonction qui nettoie la chaine pour pouvoir l'utiliser en tant que nom de classe
$chars = array(
//tous les caractères susceptibles d'être remplacés
"é" => "e",
"è" => "e",
"ê" => "e",
"ë" => "e",
"à" => "a",
"â" => "a",
"ù" => "u",
"û" => "u",
"î" => "i",
"ï" => "i",
"ç" => "c",
"É" => "e",
"È" => "e",
"Ê" => "e",
"Ë" => "e",
"À" => "a",
"Â" => "a",
"Ù" => "u",
"Û" => "u",
"Î" => "i",
"Ï" => "i",
"Ç" => "c",
" " => "_"
);
$variable = strtr($variable, $chars);
return $variable;
}
function createSizeSelectList($liste)
{
//fonction qui crée la liste des classes qui sert pour le 2e select
$resultList = [];
for ($a = 0; $a < count($liste); $a++) {
$mot = createNameClass($liste[$a][0]);
if (!isWordIn($mot, $resultList)) {
$resultList[] = $mot;
}
}
return $resultList;
}
function generateCotisations()
{
//on génère la liste des cotisations disponibles. JS se chargera de tout cacher plus tard
//
global $listeGrilleEntiere;
$classInTreatment = "";
$counter = 1;
for ($a = 0; $a < count($listeGrilleEntiere); $a++) {
//boucle qui génère les montants des cotisations
//on récupère la ligne
$actualLine = $listeGrilleEntiere[$a];
$actualClass = createNameClass($actualLine[0]);
//on vérifie si on change de classe ou non pour remettre le compteur à 1
if ($classInTreatment != $actualClass) {
$counter = 1;
$classInTreatment = $actualClass;
}
//la tranche pour la cotisation
$id = "PCOT-" . $classInTreatment . "-T" . $counter;
?>
<p id="<?php echo $id ?>" class="PCOT">Montant de la cotisation : <?php echo $actualLine[2] ?>
</p>
<?php
$counter += 1;
}
}
function generateLabelCotisations()
{
//fonction qui génère les label pour le select de taille. JS se chargera de les cacher plus tard.
global $listeGrilleEntiere;
for ($i = 0; $i< count($listeGrilleEntiere); $i++){
if (isset($listeGrilleEntiere[$i][3])){
$id = "TYPENBR-" . createNameClass($listeGrilleEntiere[$i][0]);
echo "<label id=\"" . $id . "\" for=\"secondSelection\">Veuillez sélectionner le nombre " . $listeGrilleEntiere[$i][3] . " :</label> \n";
}
}
}
function generateSecondSelection()
{
global $listeGrilleEntiere;
$classInTreatment = "";
$counter = 1;
for ($a = 0; $a < count($listeGrilleEntiere); $a++) {
//boucle qui génère les options du second select
//on récupère la ligne
$actualLine = $listeGrilleEntiere[$a];
$actualClass = createNameClass($actualLine[0]);
//on vérifie si on change de classe ou non pour remettre le compteur à 1
if ($classInTreatment != $actualClass) {
$counter = 1;
$classInTreatment = $actualClass;
?>
<option class="<?php echo $classInTreatment ?>" value="none" name="optionSelect2">---
</option>
<?php
}
//la tranche pour la cotisation
$tranch = $classInTreatment . "-T" . $counter;
?>
<option class="<?php echo $classInTreatment ?>" id="<?php echo $tranch ?>"
value="<?php echo $actualLine[1] ?>"
name="optionSelect2"><?php echo $actualLine[1] ?></option>
<?php
$counter += 1;
}
}
function isWordIn($word, $list)
{
//on vérifie si word est contenu dans list
for ($a = 0; $a < count($list); $a++) {
if ($word == $list[$a]) {
return true;
}
}
return false;
}
function tryToEcho($var)
{
if (isset($_POST[$var])) {
......@@ -60,181 +268,69 @@ function tryToShowError($var)
}
}
$numberOfErrors = 0;
if (isset($_POST)) {
if (isset($_POST["firstSelection"])) {
include "traitementAdhesion.php";
if ($debug_mode) {
echo "<br> début du traitement <br>";
}
include_once $periodSelectionPath;
$errors = traitement($_POST, $errors);
if ($debug_mode) {
echo "<br> fin du traitement <br>";
}
foreach ($errors as $key => $value) {
$fichier = fopen($grillePath, 'r');
$ligne = fgetcsv($fichier, 1024, ";");
if ($debug_mode) {
echo $key . " : " . $value . "<br>";
}
//on effectue de nouveau cette instruction pour sauter les titres du tableau
$ligne = fgetcsv($fichier, 1024, ";");
if (strlen($value) > 0) {
$numberOfErrors += 1;
}
}
if ($debug_mode) {
echo "<br> nombre d'erreurs : " . $numberOfErrors . " <br>";
var_dump($errors);
}
if ($numberOfErrors == 0) {
sendAdhesionMail($_POST);
header("Location:");
}
}
}
get_header();
//------------------------Variables-------------------
?>
$listeGrilleEntiere = []; //contiendra l'intégralité des données dans grille.csv
$textsSelectMenu = []; //contiendra les textes du premier select option gérés automatiquement
$textsSelectMenuExtended = []; //même rôle qu'au dessus mais en ajoutant les options gérées automatiquement + manuellement
<div class="wrap">
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
$classSelectMenu = []; //contiendra les classes des option menu gérés automatiquement
$classSelectMenuExtended = []; //contiendra les classes des option menu gérés automatiquement + manuellement
<?php
include_once $periodSelectionPath;
while ($ligne) {
//boucle qui va récupérer tout le contenu du fichier pour le stocker dans listeGrilleEntiere
$listeGrilleEntiere[] = ($ligne);
$ligne = fgetcsv($fichier, 1024, ";");
}
$fichier = fopen($grillePath, 'r');
$ligne = fgetcsv($fichier, 1024, ";");
fclose($fichier);
//on effectue de nouveau cette instruction pour sauter les titres du tableau
$ligne = fgetcsv($fichier, 1024, ";");
//on crée la première liste qui gère les textes de la première liste, avec accents et espaces
$textsSelectMenu = createFirstSelectionList($listeGrilleEntiere);
//------------------------Variables-------------------
//on ajoute "association", epci mutualisant et "individu" qui possèdent un traitement différent
$textsSelectMenuExtended = $textsSelectMenu;
$textsSelectMenuExtended[] = ("Association");
$textsSelectMenuExtended[] = ("Individu");
$textsSelectMenuExtended[] = ("EPCI Mutualisant");
$listeGrilleEntiere = []; //contiendra l'intégralité des données dans grille.csv
$textsSelectMenu = []; //contiendra les textes du premier select option gérés automatiquement
$textsSelectMenuExtended = []; //même rôle qu'au dessus mais en ajoutant les options gérées automatiquement + manuellement
//on crée la liste pour le 2e select qui contient le nom des classes gérés automatiquement
$classSelectMenu = createSizeSelectList($listeGrilleEntiere);
$classSelectMenu = []; //contiendra les classes des option menu gérés automatiquement
$classSelectMenuExtended = []; //contiendra les classes des option menu gérés automatiquement + manuellement
//classes gérées automatiquement + manuellement
$classSelectMenuExtended = $classSelectMenu;
$classSelectMenuExtended[] = ("Association");
$classSelectMenuExtended[] = ("Individu");
$classSelectMenuExtended[] = ("EPCIMutualisant");
function createFirstSelectionList($liste)
{
//fonction qui crée la première liste de sélection sans modifier les textes
$listeTempo = [];
for ($a = 0; $a < count($liste); $a++) {
$mot = $liste[$a][0];
//on trie par ordre alphabétique
sort($textsSelectMenu);
sort($textsSelectMenuExtended);
sort($classSelectMenu);
sort($classSelectMenuExtended);
if (!isWordIn($mot, $listeTempo)) {
$listeTempo[] = $mot;
}
}
get_header();
return $listeTempo;
}
function createNameClass($variable)
{
//fonction qui nettoie la chaine pour pouvoir l'utiliser en tant que nom de classe
$chars = array(
//tous les caractères susceptibles d'être remplacés
"é" => "e",
"è" => "e",
"ê" => "e",
"ë" => "e",
"à" => "a",
"â" => "a",
"ù" => "u",
"û" => "u",
"î" => "i",
"ï" => "i",
"ç" => "c",
"É" => "e",
"È" => "e",
"Ê" => "e",
"Ë" => "e",
"À" => "a",
"Â" => "a",
"Ù" => "u",
"Û" => "u",
"Î" => "i",
"Ï" => "i",
"Ç" => "c",
" " => "_"
);
$variable = strtr($variable, $chars);
return $variable;
}
function createSizeSelectList($liste)
{
//fonction qui crée la liste des classes qui sert pour le 2e select
$resultList = [];
for ($a = 0; $a < count($liste); $a++) {
$mot = createNameClass($liste[$a][0]);
if (!isWordIn($mot, $resultList)) {
$resultList[] = $mot;
}
?>
}
<div class="wrap">
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
return $resultList;
}
function isWordIn($word, $list)
{
//on vérifie si word est contenu dans list
for ($a = 0; $a < count($list); $a++) {
if ($word == $list[$a]) {
return true;
}
}
return false;
}
while ($ligne) {
//boucle qui va récupérer tout le contenu du fichier pour le stocker dans listeGrilleEntiere
$listeGrilleEntiere[] = ($ligne);
$ligne = fgetcsv($fichier, 1024, ";");
}
fclose($fichier);
//on crée la première liste qui gère les textes de la première liste, avec accents et espaces
$textsSelectMenu = createFirstSelectionList($listeGrilleEntiere);
//on ajoute "association", epci mutualisant et "individu" qui possèdent un traitement différent
$textsSelectMenuExtended = $textsSelectMenu;
$textsSelectMenuExtended[] = ("Association");
$textsSelectMenuExtended[] = ("Individu");
$textsSelectMenuExtended[] = ("EPCI Mutualisant");
//on crée la liste pour le 2e select qui contient le nom des classes gérés automatiquement
$classSelectMenu = createSizeSelectList($listeGrilleEntiere);
//classes gérées automatiquement + manuellement
$classSelectMenuExtended = $classSelectMenu;
$classSelectMenuExtended[] = ("Association");
$classSelectMenuExtended[] = ("Individu");
$classSelectMenuExtended[] = ("EPCIMutualisant");
//on trie par ordre alphabétique
sort($textsSelectMenu);
sort($textsSelectMenuExtended);
sort($classSelectMenu);
sort($classSelectMenuExtended);
?>
<h1>Formulaire de renouvellement d'adhésion</h1>
<p>
<?php
......@@ -273,7 +369,7 @@ get_header();
</p>
<div id="link">
<a href="contact.php" id="linkRedirection" title="Page par défaut">Valider</a>
<a href="contact.php" id="linkRedirection">Texte</a>
</div>
<div id="formulaireEPCIMutualisant">
......@@ -291,82 +387,27 @@ get_header();
</div>
<p id="paraSecondSelection">
<label for="secondSelection">Veuillez sélectionner la taille :</label>
<select id="secondSelection" name="secondSelection">
<?php
$classInTreatment = "";
$counter = 1;
for ($a = 0; $a < count($listeGrilleEntiere); $a++) {
//boucle qui génère les options du second select
//on récupère la ligne
$actualLine = $listeGrilleEntiere[$a];
$actualClass = createNameClass($actualLine[0]);
//on vérifie si on change de classe ou non pour remettre le compteur à 1
if ($classInTreatment != $actualClass) {
<?php
//on génère les labels
generateLabelCotisations(); ?>
$counter = 1;
$classInTreatment = $actualClass;
?>
<option class="<?php echo $classInTreatment ?>" value="none" name="optionSelect2">
---
</option>
<?php
}
//la tranche pour la cotisation
$tranch = $classInTreatment . "-T" . $counter;
<select id="secondSelection" name="secondSelection">
?>
<option class="<?php echo $classInTreatment ?>" id="<?php echo $tranch ?>"
value="<?php echo $actualLine[1] ?>"
name="optionSelect2"><?php echo $actualLine[1] ?></option>
<?php
<?php
//et on génère les options qui seront cachées plus tard
generateSecondSelection(); ?>
$counter += 1;
}
?>
</select>
<?php tryToShowError("second Selection"); ?>
</p>
<div id="cotisation">
<?php
$classInTreatment = "";
$counter = 1;
for ($a = 0; $a < count($listeGrilleEntiere); $a++) {
//boucle qui génère les montants des cotisations
//on récupère la ligne
$actualLine = $listeGrilleEntiere[$a];
$actualClass = createNameClass($actualLine[0]);
//on vérifie si on change de classe ou non pour remettre le compteur à 1
if ($classInTreatment != $actualClass) {
$counter = 1;
$classInTreatment = $actualClass;
}
//la tranche pour la cotisation
$id = "PCOT-" . $classInTreatment . "-T" . $counter;
?>
<p id="<?php echo $id ?>" class="PCOT">Montant de la cotisation
: <?php echo $actualLine[2] ?>
</p>
<?php
$counter += 1;
}
?>
<?php generateCotisations(); ?>
<p id="PCOT-EPCIMutualisant" class="PCOT">Montant de la cotisation : <span
id="montantCotisation"></span></p>
......@@ -374,57 +415,42 @@ get_header();
</div>
<div id="informationsCollectivite">
<h3>Coordonnées :</h3>
<p>Les champs portant une astérisque
<abbr class="adullact-abbr" title="Champ obligatoire">*</abbr>
sont obligatoires
</p>
<label for="nomCollectivite">
<abbr class="adullact-abbr" title="Champ obligatoire">*</abbr>
Nom de la collectivité :
</label>
<h3>Informations obligatoires :</h3>
<label for="nomCollectivite">Nom de la collectivité :</label>
<input type="text" name="nomCollectivite" id="nomCollectivite" required=""
value="<?php tryToEcho("nomCollectivite"); ?>"><br>
<?php tryToShowError("nom"); ?>
<label for="adresseCollectivite">
<abbr class="adullact-abbr" title="Champ obligatoire">*</abbr>
Adresse :</label>
<label for="adresseCollectivite">Adresse :</label>
<input type="text" name="adresseCollectivite" id="adresseCollectivite" required=""
value="<?php tryToEcho("adresseCollectivite"); ?>"><br>
<?php tryToShowError("adresse"); ?>
<label for="codePostalCollectivite">
<abbr class="adullact-abbr" title="Champ obligatoire">*</abbr>
Code postal :</label>
<label for="codePostalCollectivite">Code postal :</label>
<input type="text" name="codePostalCollectivite" id="codePostalCollectivite" required=""
value="<?php tryToEcho("codePostalCollectivite"); ?>"><br>
<?php tryToShowError("CP"); ?>
<label for="villeCollectivite">
<abbr class="adullact-abbr" title="Champ obligatoire">*</abbr>
Ville :</label>
<label for="villeCollectivite">Ville :</label>
<input type="text" name="villeCollectivite" id="villeCollectivite" required=""
value="<?php tryToEcho("villeCollectivite"); ?>"><br>
<?php tryToShowError("ville"); ?>
<label for="telCollectivite">Téléphone :</label>
<input type="tel" name="telCollectivite" id="telCollectivite" required=""
<input type="tel" name="telCollectivite" id="telCollectivite"
value="<?php tryToEcho("telCollectivite"); ?>"><br>
<?php tryToShowError("tel"); ?>
<label for="siteCollectivite">Site internet :</label>
<input type="url" name="siteCollectivite" id="siteCollectivite" required=""
<input type="url" name="siteCollectivite" id="siteCollectivite"
value="<?php tryToEcho("siteCollectivite"); ?>"><br>
<?php tryToShowError("site"); ?>
<label for="periodeAdhesionCollectivite">
<abbr class="adullact-abbr" title="Champ obligatoire">*</abbr>
Période d'adhésion :</label>
<label for="periodeAdhesionCollectivite">Période d'adhésion :</label>
<select name="periodeAdhesionCollectivite" id="periodeAdhesionCollectivite" required="">
<option class="optionPeriod" value="" selected>---</option>
<?php generateDates(); ?>
......@@ -436,28 +462,19 @@ get_header();
<h3>Informations relatives à Chorus Pro</h3>
<label for="siretCollectivite">
<abbr class="adullact-abbr" title="Champ obligatoire">*</abbr>
SIRET :
</label>
<label for="siretCollectivite">SIRET :</label>
<input type="number" name="siretCollectivite" id="siretCollectivite" required=""
value="<?php tryToEcho("siretCollectivite"); ?>"><br>
<?php tryToShowError("siret"); ?>
<label for="numeroEngagementCollectivite">
<abbr class="adullact-abbr" title="Champ obligatoire">*</abbr>
N° d'engagement :
</label>
<label for="numeroEngagementCollectivite">N° d'engagement :</label>
<input type="text" name="numeroEngagementCollectivite" id="numeroEngagementCollectivite"
required=""
value="<?php tryToEcho("numeroEngagementCollectivite"); ?>"><br>
<?php tryToShowError("numeroEngagement"); ?>
<label for="codeCollectivite">
<abbr class="adullact-abbr" title="Champ obligatoire">*</abbr>
Code :
</label>
<label for="codeCollectivite">Code :</label>
<input type="text" name="codeCollectivite" id="codeCollectivite" required=""
value="<?php tryToEcho("codeCollectivite"); ?>"><br>
<?php tryToShowError("code"); ?>
......@@ -477,4 +494,8 @@ get_header();
</div>
</div>
<?php get_footer(); ?>
\ No newline at end of file
<?php
get_footer();
?>
\ No newline at end of file
nature;taille;cotisation
Ville;< 1 000;100
nature;taille;cotisation;type
Ville;< 1 000;100;d'habitants
Ville;1 000 à 2 500;250
Ville;2 501 à 5 000;500
Ville;5 001 à 10 000;900
......@@ -10,20 +10,20 @@ Ville;50 001 à 80 000;3500
Ville;80 001 à 100 000;4000
Ville;+ de 100 000;4500
Ville;à arrondissement;6000
Département;- de 1 000 000;4000
Département;- de 1 000 000;4000;d'habitants
Département;1 000 000 à 2 000 000;4500
Département;+ de 2 000 000;6000
Région;- de 2 500 000;4500
Région;- de 2 500 000;4500;d'habitants
Région;+ de 2 500 000;6000
EPCI à fiscalité propre;- de 10 000;1750
EPCI à fiscalité propre;- de 10 000;1750;d'habitants
EPCI à fiscalité propre;10 001 à 50 000;2500
EPCI à fiscalité propre;50 001 à 100 000;3000
EPCI à fiscalité propre;100 001 à 250 000;3500
EPCI à fiscalité propre;250 001 à 500 000;4000
EPCI à fiscalité propre;500 001 à 1 000 000;4500
EPCI à fiscalité propre;+ de 1 000 000;6000
Etablissement Public;- de 25;250
Etablissement Public;- de 25;250;de salariés
Etablissement Public;25 à 50;500
Etablissement Public;51 à 100;1250
Etablissement Public;101 à 500;1750
Etablissement Public;+ de 500;2500
Etablissement Public;+ de 500;2500
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment