Premier commit
This commit is contained in:
502
include/class.pdo.php
Normal file
502
include/class.pdo.php
Normal file
@@ -0,0 +1,502 @@
|
||||
<?php
|
||||
/**
|
||||
* @author : Pascal BLAIN, lycee le Castel à Dijon
|
||||
* @version : 2023-09-18 à 16h43
|
||||
* Classe d'acces aux donnees. Utilise les services de la classe PDO pour l'application
|
||||
* Les attributs sont tous statiques, les 4 premiers pour la connexion
|
||||
* $monPdo est de type PDO - $monPdoBD contient l'unique instance de la classe
|
||||
* @link http://www.php.net/manual/fr/book.pdo.php
|
||||
*/
|
||||
|
||||
class PdoBD
|
||||
{
|
||||
private static $serveur = 'mysql:host=localhost';
|
||||
private static $bdd = 'dbname=sdis29';
|
||||
private static $user = 'root';
|
||||
private static $mdp = '';
|
||||
private static $monPdo;
|
||||
private static $monPdoBD = null;
|
||||
|
||||
private function __construct()
|
||||
{
|
||||
PdoBD::$monPdo = new PDO(PdoBD::$serveur . ';' . PdoBD::$bdd, PdoBD::$user, PdoBD::$mdp);
|
||||
PdoBD::$monPdo->query("SET CHARACTER SET utf8");
|
||||
}
|
||||
public function _destruct()
|
||||
{
|
||||
PdoBD::$monPdo = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fonction statique qui cree l'unique instance de la classe PdoBD
|
||||
* Appel : $instancePdoBD = PdoBD::getPdoBD();
|
||||
*/
|
||||
public static function getPdoBD()
|
||||
{
|
||||
if (PdoBD::$monPdoBD == null) {
|
||||
PdoBD::$monPdoBD = new PdoBD();
|
||||
}
|
||||
return PdoBD::$monPdoBD;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retourne les informations d'un centre de coordination
|
||||
*/
|
||||
public function getLesCasernes($leCentre)
|
||||
{
|
||||
$req = "SELECT cId, cNom, cAdresse, cTel, cGroupement
|
||||
FROM caserne
|
||||
WHERE cGroupement='" . $leCentre . "'
|
||||
ORDER BY cNom;";
|
||||
$rs = PdoBD::$monPdo->query($req);
|
||||
if ($rs === false) {
|
||||
afficherErreurSQL("Probleme lors de la lecture des casernes ..", $req, PdoBD::$monPdo->errorInfo());
|
||||
}
|
||||
$lesLignes = $rs->fetchAll();
|
||||
return $lesLignes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retourne les informations des pompiers
|
||||
*/
|
||||
public function getLesPompiers($cis)
|
||||
{
|
||||
$req = "SELECT pCis, pId, pNom, pPrenom, pStatut
|
||||
FROM pompier
|
||||
WHERE pCis=" . $cis . "
|
||||
ORDER BY pNom;";
|
||||
$rs = PdoBD::$monPdo->query($req);
|
||||
if ($rs === false) {
|
||||
afficherErreurSQL("Probleme lors de la lecture des pompiers ..", $req, PdoBD::$monPdo->errorInfo());
|
||||
}
|
||||
$lesLignes = $rs->fetchAll();
|
||||
return $lesLignes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retourne les informations d'un pompier sous la forme d'un tableau associatif
|
||||
*/
|
||||
public function getInfosPompier($login, $mdp)
|
||||
{
|
||||
$req = "SELECT pCis, pId as id, pNom as nom, pPrenom as prenom, pStatut, pMail, pLogin, pMdp, pGrade, pAdresse, pCp, pVille, pBip, pCommentaire,
|
||||
'la caserne' as cNom, 'adresse' as cAdresse, 'telephone' as cTel, 'le groupement' as cGroupement, 'le grade' as wGrade, 'le statut' as wStatut, 'le type' as wType
|
||||
FROM pompier";
|
||||
if ($login === "*") {
|
||||
$req .= " WHERE pCis=" . $_SESSION['cis'] . " AND pId = $mdp";
|
||||
} else {
|
||||
$req .= " WHERE pLogin='$login'
|
||||
AND pMdp='$mdp'";
|
||||
}
|
||||
$rs = PdoBD::$monPdo->query($req);
|
||||
if ($rs === false) {
|
||||
afficherErreurSQL("Probleme lors de la lecture des informations d'un pompier...", $req, PdoBD::$monPdo->errorInfo());
|
||||
}
|
||||
$ligne = $rs->fetch();
|
||||
return $ligne;
|
||||
}
|
||||
|
||||
/**
|
||||
* Met à jour l'activité d'un pompier sur une tranche
|
||||
*/
|
||||
public function majActivite($cis, $idUser, $jour, $tranche, $newDispo)
|
||||
{
|
||||
$existedTranche = 'SELECT aDisponibilite FROM `activite`
|
||||
WHERE aCis = ' . $cis . ' AND aDateGarde = "' . $jour . '" AND aTranche = ' . $tranche . ' AND aPompier = ' . $idUser . ';';
|
||||
$rs = PdoBD::$monPdo->query($existedTranche);
|
||||
var_dump($rs);
|
||||
|
||||
if ($rs === false) {
|
||||
afficherErreurSQL("Probleme lors de la mise à jour de l'activité dans la base de données.", $existedTranche, PdoBD::$monPdo->errorInfo());
|
||||
} else {
|
||||
|
||||
if (count($rs->fetch()) !== 2) {
|
||||
$req = 'INSERT INTO activite (aCis, aPompier, aDateGarde, aTranche, aDisponibilite, aGarde)
|
||||
VALUES (' . $cis . ',
|
||||
' . $idUser . ',
|
||||
' . $jour . ',
|
||||
' . $tranche . ',
|
||||
' . $newDispo . ', 0);';
|
||||
} else {
|
||||
$req = 'UPDATE activite
|
||||
SET aDisponibilite = ' . $newDispo . '
|
||||
WHERE aCis = ' . $cis . '
|
||||
AND aPompier = ' . $idUser . '
|
||||
AND aDateGarde = "' . $jour . '"
|
||||
AND aTranche = ' . $tranche . ';';
|
||||
}
|
||||
var_dump($req);
|
||||
$rs = PdoBD::$monPdo->exec($req);
|
||||
|
||||
if ($rs === false) {
|
||||
afficherErreurSQL("Probleme lors de la mise à jour de l'activité dans la base de données.", $existedTranche, PdoBD::$monPdo->errorInfo());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Met à jour la garde d'un pompier sur une tranche
|
||||
*/
|
||||
public function majGarde()
|
||||
{
|
||||
$req = "
|
||||
";
|
||||
$rs = PdoBD::$monPdo->exec($req);
|
||||
if ($rs === false) {
|
||||
afficherErreurSQL("Probleme lors de la mise à jour de la garde dans la base de données.", $req, PdoBD::$monPdo->errorInfo());
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Met à jour une ligne de la table pompier
|
||||
*/
|
||||
public function majPompier($cis, $valeur, $nom, $prenom, $statut, $mail, $login, $mdp, $grade, $type, $adresse, $cp, $ville, $tel, $commentaire)
|
||||
{
|
||||
$req = "
|
||||
|
||||
|
||||
|
||||
|
||||
;";
|
||||
$rs = PdoBD::$monPdo->exec($req);
|
||||
if ($rs === false) {
|
||||
afficherErreurSQL("Probleme lors de la mise à jour du pompier dans la base de données.", $req, PdoBD::$monPdo->errorInfo());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* supprime une ligne de la table pompier
|
||||
*/
|
||||
public function supprimePompier($cis, $valeur)
|
||||
{
|
||||
$req = "
|
||||
|
||||
;";
|
||||
$rs = PdoBD::$monPdo->exec($req);
|
||||
if ($rs === false) {
|
||||
afficherErreurSQL("Probleme lors de la suppression du pompier dans la base de données.", $req, PdoBD::$monPdo->errorInfo());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* ajoute une ligne dans la table pompier
|
||||
*/
|
||||
public function ajoutPompier($cis, $valeur, $nom, $prenom, $statut, $mail, $login, $mdp, $grade, $type, $adresse, $cp, $ville, $tel, $commentaire)
|
||||
{
|
||||
$req = "INSERT INTO pompier
|
||||
(pCis,pId,pNom,pPrenom,pStatut,pMail,pLogin,pMdp,pGrade,pType, pAdresse,pCp,pVille,pBip,pCommentaire,pDateEnreg,pDateModif)
|
||||
VALUES
|
||||
(
|
||||
);";
|
||||
$rs = PdoBD::$monPdo->exec($req);
|
||||
if ($rs === false) {
|
||||
afficherErreurSQL("Probleme lors de l'insertion du pompier dans la base de données.", $req, PdoBD::$monPdo->errorInfo());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Retourne les informations des gardes d'un pompier (ou des pompiers) sous la forme d'un tableau associatif
|
||||
*/
|
||||
public function getInfosGardes($pompier)
|
||||
{
|
||||
$req = "SELECT aPompier, DATE_FORMAT(aDateGarde,'%d/%m/%Y') as wDate, aTranche, pLibelle as tLibelle
|
||||
FROM activite INNER JOIN parametre ON pType='tranche' AND aTranche=pIndice
|
||||
WHERE aCis=" . $_SESSION['cis'];
|
||||
if ($pompier <> "*") {
|
||||
$req .= " AND aPompier=" . $pompier;
|
||||
}
|
||||
$req .= " AND aGarde=True
|
||||
ORDER BY aPompier, aDateGarde DESC, aTranche ASC;";
|
||||
|
||||
$rs = PdoBD::$monPdo->query($req);
|
||||
if ($rs === false) {
|
||||
afficherErreurSQL("Probleme lors de la lecture des gardes d'un pompier...", $req, PdoBD::$monPdo->errorInfo());
|
||||
}
|
||||
$lesLignes = $rs->fetchAll();
|
||||
return $lesLignes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retourne les informations des disponibilites hebdomadaires d'un pompier sous la forme d'un tableau associatif
|
||||
*/
|
||||
public function getDisposHebdo($pompier, $semaine, $annee)
|
||||
{
|
||||
$premierJour = strtotime("+$semaine weeks", mktime(0, 0, 0, 1, 1, $annee)); //renvoie la date du lundi
|
||||
|
||||
if (date('w', $premierJour) != 1) {
|
||||
$premierJour = strtotime("last monday", $premierJour);
|
||||
}
|
||||
$debut = date('Y/m/d', $premierJour);
|
||||
$fin = date('Y/m/d', strtotime("6 days", $premierJour));
|
||||
|
||||
$req = "SELECT pId, pNom, pPrenom, DATE_FORMAT(aDateGarde,'%d/%m/%Y') as wDate, aTranche, aDisponibilite, aGarde, d.pValeur as dCouleur
|
||||
FROM (activite INNER JOIN parametre t ON t.pType='tranche'AND aTranche=t.pIndice
|
||||
INNER JOIN parametre d ON d.pType='dispo' AND aDisponibilite=d.pIndice)
|
||||
RIGHT OUTER JOIN pompier ON aCis=pCis AND aPompier=pId
|
||||
WHERE aCis=" . $_SESSION['cis'];
|
||||
|
||||
if ($pompier <> "*") {
|
||||
$req .= " AND aPompier=" . $pompier;
|
||||
}
|
||||
$req .= " AND aDateGarde BETWEEN '" . $debut . "' AND '" . $fin . "'
|
||||
AND aDisponibilite>0
|
||||
ORDER BY aPompier, aDateGarde ASC, aTranche ASC;";
|
||||
$rs = PdoBD::$monPdo->query($req);
|
||||
|
||||
if ($rs === false) {
|
||||
afficherErreurSQL("Probleme lors de la lecture des gardes d'un pompier...", $req, PdoBD::$monPdo->errorInfo());
|
||||
}
|
||||
$lesLignes = $rs->fetchAll();
|
||||
$lesDispos = array();
|
||||
|
||||
if ($pompier <> "*") {
|
||||
for ($jour = 0; $jour <= 6; $jour++) {
|
||||
$laDate = date('d/m/Y', strtotime('+' . $jour . ' day', $premierJour));
|
||||
$lesDispos[$pompier][$laDate] = array(
|
||||
'dPompier' => $pompier,
|
||||
'dDate' => $laDate,
|
||||
'd1' => 0,
|
||||
'd2' => 0,
|
||||
'd3' => 0,
|
||||
'd4' => 0,
|
||||
'g1' => 0,
|
||||
'g2' => 0,
|
||||
'g3' => 0,
|
||||
'g4' => 0,
|
||||
'c1' => 'gray',
|
||||
'c2' => 'gray',
|
||||
'c3' => 'gray',
|
||||
'c4' => 'gray'
|
||||
);
|
||||
}
|
||||
} else {
|
||||
$req = "SELECT pCis, pId, pNom, pPrenom, pStatut
|
||||
FROM pompier
|
||||
WHERE pCis=" . $_SESSION['cis'] . "
|
||||
ORDER BY pNom, pPrenom;";
|
||||
$rs = PdoBD::$monPdo->query($req);
|
||||
if ($rs === false) {
|
||||
afficherErreurSQL("Probleme lors de la lecture des pompiers ..", $req, PdoBD::$monPdo->errorInfo());
|
||||
}
|
||||
$lesPompiers = $rs->fetchAll();
|
||||
|
||||
foreach ($lesPompiers as $unPompier) {
|
||||
$pompier = $unPompier['pId'];
|
||||
for ($jour = 0; $jour <= 6; $jour++) {
|
||||
$laDate = date('d/m/Y', strtotime('+' . $jour . ' day', $premierJour));
|
||||
$lesDispos[$pompier][$laDate] = array(
|
||||
'dPompier' => $pompier,
|
||||
'dDate' => $laDate,
|
||||
'd1' => 0,
|
||||
'd2' => 0,
|
||||
'd3' => 0,
|
||||
'd4' => 0,
|
||||
'g1' => 0,
|
||||
'g2' => 0,
|
||||
'g3' => 0,
|
||||
'g4' => 0,
|
||||
'c1' => 'gray',
|
||||
'c2' => 'gray',
|
||||
'c3' => 'gray',
|
||||
'c4' => 'gray'
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach ($lesLignes as $uneLigne) {
|
||||
$pompier = $uneLigne['pId'];
|
||||
$laDate = $uneLigne['wDate'];
|
||||
$dispo = "d" . $uneLigne['aTranche'];
|
||||
$garde = "g" . $uneLigne['aTranche'];
|
||||
$couleur = "c" . $uneLigne['aTranche'];
|
||||
$lesDispos[$pompier][$laDate][$dispo] = $uneLigne['aDisponibilite'];
|
||||
$lesDispos[$pompier][$laDate][$garde] = $uneLigne['aGarde'];
|
||||
$lesDispos[$pompier][$laDate][$couleur] = $uneLigne['dCouleur'];
|
||||
}
|
||||
/* echo "<PRE>";
|
||||
print_r($lesDispos);
|
||||
echo "</PRE>";*/
|
||||
return $lesDispos;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retourne dans un tableau associatif les informations de la table tranche
|
||||
*/
|
||||
public function getLesTranches()
|
||||
{
|
||||
$req = "SELECT pIndice as tId, pLibelle as tLibelle
|
||||
FROM parametre WHERE pType='tranche'
|
||||
ORDER by 1;";
|
||||
$rs = PdoBD::$monPdo->query($req);
|
||||
if ($rs === false) {
|
||||
afficherErreurSQL("Probleme lors de la recherche des tranches dans la base de données.", $req, PdoBD::$monPdo->errorInfo());
|
||||
}
|
||||
$lesLignes = $rs->fetchAll();
|
||||
return $lesLignes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retourne les informations de la table typeParametre
|
||||
*/
|
||||
public function getLesParametres()
|
||||
{
|
||||
$req = "SELECT tpId, tpLibelle, tpBooleen, tpChoixMultiple
|
||||
FROM typeParametre
|
||||
ORDER BY tpLibelle;";
|
||||
$rs = PdoBD::$monPdo->query($req);
|
||||
$lesLignes = $rs->fetchAll();
|
||||
return $lesLignes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retourne dans un tableau associatif les informations de la table PARAMETRE (pour un type particulier)
|
||||
*/
|
||||
public function getParametre($type)
|
||||
{
|
||||
$req = "SELECT pIndice, pLibelle, pValeur, pPlancher, pPlafond ";
|
||||
if ($type == "typePer") {
|
||||
$req .= ",(SELECT count(*) FROM parametre p INNER JOIN pompier on p.pIndice=pompier.pType WHERE p.pType='$type' AND p.pIndice=parametre.pIndice) as nb";
|
||||
} elseif ($type == "statAgt") {
|
||||
$req .= ",(SELECT count(*) FROM parametre p INNER JOIN pompier on p.pIndice=pompier.pStatut WHERE p.pType='$type' AND p.pIndice=parametre.pIndice) as nb";
|
||||
} elseif ($type == "grade") {
|
||||
$req .= ",(SELECT count(*) FROM parametre p INNER JOIN pompier on p.pIndice=pompier.pgrade WHERE p.pType='$type' AND p.pIndice=parametre.pIndice) as nb";
|
||||
} else {
|
||||
$req .= ", 0 as nb";
|
||||
}
|
||||
$req .= " FROM parametre
|
||||
WHERE pType='$type'
|
||||
ORDER by pIndice;";
|
||||
$rs = PdoBD::$monPdo->query($req);
|
||||
if ($rs === false) {
|
||||
afficherErreurSQL("Probleme lors de la recherche des parametres " . $type . " dans la base de données.", $req, PdoBD::$monPdo->errorInfo());
|
||||
}
|
||||
$lesLignes = $rs->fetchAll();
|
||||
return $lesLignes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retourne dans un tableau associatifles informations de la table PARAMETRE (pour un type particulier)
|
||||
*/
|
||||
public function getInfosParam($type, $valeur)
|
||||
{
|
||||
if ($valeur == "NULL") {
|
||||
$req = "SELECT pType, max(pIndice)+1 AS pIndice, ' ' AS pLibelle, tpLibelle
|
||||
FROM parametre INNER JOIN typeParametre ON typeParametre.tpId=parametre.pType
|
||||
WHERE pType='$type';";
|
||||
} else {
|
||||
$req = "SELECT pType, pIndice, pLibelle, tpLibelle, pPlancher, pPlafond
|
||||
FROM parametre INNER JOIN typeParametre ON typeParametre.tpId=parametre.pType
|
||||
WHERE pType='$type'
|
||||
AND pIndice='$valeur';";
|
||||
}
|
||||
$rs = PdoBD::$monPdo->query($req);
|
||||
$ligne = $rs->fetch();
|
||||
return $ligne;
|
||||
}
|
||||
|
||||
/**
|
||||
* Met a jour une ligne de la table PARAMETRE
|
||||
*/
|
||||
public function majParametre($type, $valeur, $libelle, $plancher, $plafond)
|
||||
{
|
||||
$req = "UPDATE parametre SET pLibelle='$libelle', pPlancher='$plancher', pPlafond='$plafond'
|
||||
WHERE pType='$type'
|
||||
AND pIndice=$valeur;";
|
||||
$rs = PdoBD::$monPdo->exec($req);
|
||||
if ($rs === false) {
|
||||
afficherErreurSQL("Probleme lors de la modification d'un parametre dans la base de données.", $req, PdoBD::$monPdo->errorInfo());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* supprime une ligne de la table PARAMETRE
|
||||
*/
|
||||
public function supprimeParametre($type, $valeur)
|
||||
{
|
||||
$req = "DELETE
|
||||
FROM parametre
|
||||
WHERE pType='$type'
|
||||
AND pIndice=$valeur;";
|
||||
$rs = PdoBD::$monPdo->exec($req);
|
||||
if ($rs === false) {
|
||||
afficherErreurSQL("Probleme lors de la suppression d'un parametre dans la base de données.", $req, PdoBD::$monPdo->errorInfo());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* ajoute une ligne dans la table PARAMETRE
|
||||
*/
|
||||
public function ajoutParametre($type, $valeur, $libelle, $plancher, $plafond)
|
||||
{
|
||||
$req = "INSERT INTO parametre
|
||||
(pType, pIndice, pLibelle, pPlancher, pPlafond)
|
||||
VALUES ('$type', $valeur, '$libelle', $plancher, $plafond);";
|
||||
$rs = PdoBD::$monPdo->exec($req);
|
||||
if ($rs === false) {
|
||||
afficherErreurSQL("Probleme lors de l'insertion d'un parametre dans la base de données.", $req, PdoBD::$monPdo->errorInfo());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* envoyer un message electronique
|
||||
*/
|
||||
public function envoyerMail($mail, $sujet, $msg, $entete)
|
||||
{
|
||||
if (mail($mail, $sujet, $msg, null) == false) {
|
||||
echo 'Suite à un problème technique, votre message n a pas été envoyé a ' . $mail . ' sujet' . $sujet . 'message ' . $msg . ' entete ' . $entete;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Retourne les informations d'une intervention
|
||||
*/
|
||||
public function getInfosIntervention($intervention)
|
||||
{
|
||||
$req = "SELECT iCis, iId, iLieu, iDescription, iDate , iTranche, iHeureDebut, iHeureFin
|
||||
FROM intervention
|
||||
WHERE iId=" . $intervention . ";";
|
||||
$rs = PdoBD::$monPdo->query($req);
|
||||
if ($rs === false) {
|
||||
afficherErreurSQL("Probleme lors de la lecture de l'intervention ...", $req, PdoBD::$monPdo->errorInfo());
|
||||
}
|
||||
$lesLignes = $rs->fetchAll();
|
||||
return $lesLignes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retourne les informations de toutes les interventions d'une caserne
|
||||
*/
|
||||
public function getLesInterventions($cis)
|
||||
{
|
||||
$req = "SELECT iCis, iId, iLieu, iDescription, iDate , iTranche, iHeureDebut, iHeureFin
|
||||
FROM intervention
|
||||
WHERE iCis=" . $cis . "
|
||||
ORDER BY iId;";
|
||||
$rs = PdoBD::$monPdo->query($req);
|
||||
if ($rs === false) {
|
||||
afficherErreurSQL("Probleme lors de la lecture des interventions de la caserne ...", $req, PdoBD::$monPdo->errorInfo());
|
||||
}
|
||||
$lesLignes = $rs->fetchAll();
|
||||
return $lesLignes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retourne les participants à une intervention
|
||||
*/
|
||||
public function getLesParticipants($cis, $intervention)
|
||||
{
|
||||
$req = "SELECT pId, pNom, pPrenom
|
||||
FROM pompier INNER JOIN equipe ON pompier.pId=equipe.ePompier AND pompier.pCis=equipe.eCis
|
||||
WHERE eIntervention=" . $intervention . "
|
||||
AND eCis=" . $cis . "
|
||||
ORDER BY pNom, pPrenom;";
|
||||
$rs = PdoBD::$monPdo->query($req);
|
||||
if ($rs === false) {
|
||||
afficherErreurSQL("Probleme lors de la lecture des participants ..", $req, PdoBD::$monPdo->errorInfo());
|
||||
}
|
||||
$lesLignes = $rs->fetchAll();
|
||||
return $lesLignes;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
206
include/fct.inc.php
Normal file
206
include/fct.inc.php
Normal file
@@ -0,0 +1,206 @@
|
||||
<?php
|
||||
/**
|
||||
* Fonctions php pour l'application SDIS29
|
||||
* @version 1.0 version MVC modifiee le 11 septembre par Blain Pascal
|
||||
*/
|
||||
|
||||
/**
|
||||
* Teste si un pompier est connecté (return vrai ou faux)
|
||||
*/
|
||||
function estConnecte(){
|
||||
return isset($_SESSION['idUtilisateur']);
|
||||
}
|
||||
/**
|
||||
* Enregistre dans des variables de session les informations d'un pompier
|
||||
*/
|
||||
function connecter($cis, $id, $nom, $prenom, $statut, $a1, $a2, $a3, $a4){
|
||||
$_SESSION['cis'] = $cis; //Caserne
|
||||
$_SESSION['idUtilisateur'] = $id; //ID pompier
|
||||
$_SESSION['nom'] = $nom; //Nom
|
||||
$_SESSION['prenom'] = $prenom; //Prénom
|
||||
$_SESSION['statut'] = $statut; //Statut
|
||||
$_SESSION['adr1'] = $a1; //Nom caserne
|
||||
$_SESSION['adr2'] = $a2; //Adresse Caserne
|
||||
$_SESSION['adr3'] = $a3; //groupement caserne
|
||||
$_SESSION['adr4'] = $a4; //Tel caserne
|
||||
}
|
||||
/**
|
||||
* Detruit la session active
|
||||
*/
|
||||
function deconnecter(){
|
||||
session_destroy();
|
||||
}
|
||||
/**
|
||||
* Transforme une date au format français jj/mm/aaaa vers le format anglais aaaa-mm-jj
|
||||
* @param $madate au format jj/mm/aaaa
|
||||
* @return la date au format anglais aaaa-mm-jj
|
||||
*/
|
||||
function dateFrancaisVersAnglais($maDate){
|
||||
if(estDateValide($maDate)== true)
|
||||
{
|
||||
@list($jour,$mois,$annee) = explode('/',$maDate);
|
||||
return date('Y-m-d',mktime(0,0,0,$mois,$jour,$annee));
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Transforme une date au format format anglais aaaa-mm-jj vers le format français jj/mm/aaaa
|
||||
* @param $madate au format aaaa-mm-jj
|
||||
* @return la date au format format français jj/mm/aaaa
|
||||
*/
|
||||
function dateAnglaisVersFrancais($maDate)
|
||||
{
|
||||
@list($annee,$mois,$jour)=explode('-',$maDate);
|
||||
$date="$jour"."/".$mois."/".$annee;
|
||||
return $date;
|
||||
}
|
||||
/**
|
||||
* retourne le mois au format aaaamm selon le jour dans le mois
|
||||
* @param $date au format jj/mm/aaaa
|
||||
* @return le mois au format aaaamm
|
||||
*/
|
||||
function getMois($date){
|
||||
@list($jour,$mois,$annee) = explode('/',$date);
|
||||
if(strlen($mois) == 1){
|
||||
$mois = "0".$mois;
|
||||
}
|
||||
return $annee.$mois;
|
||||
}
|
||||
|
||||
/**
|
||||
* retourne la date en texte
|
||||
*/
|
||||
function dateTexte($laDate){
|
||||
$NomDuJour = array ("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi");
|
||||
$NomDuMois = array ("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre");
|
||||
$lejour = date("j",$laDate);
|
||||
$lemois = $NomDuMois[date("n",$laDate)-1];
|
||||
$dateTexte=$NomDuJour[date("w",$laDate)]." ";
|
||||
if($lejour==01){$dateTexte.=' 1er '; }
|
||||
else {$dateTexte.=$lejour.' ';}
|
||||
$dateTexte.=$lemois.' '.date('Y', $laDate);
|
||||
return $dateTexte;
|
||||
}
|
||||
|
||||
/**
|
||||
* retourne le mois en texte
|
||||
*/
|
||||
function moisTexte($mois){
|
||||
$tabMois = array( '01' => "Janvier",
|
||||
'02' => "Février",
|
||||
'03' => "Mars",
|
||||
'04' => "Avril",
|
||||
'05' => "Mai",
|
||||
'06' => "Juin",
|
||||
'07' => "Juillet",
|
||||
'08' => "Août",
|
||||
'09' => "Septembre",
|
||||
'10' => "Octobre",
|
||||
'11' => "Novembre",
|
||||
'12' => "Décembre");
|
||||
return $tabMois[$mois];
|
||||
}
|
||||
|
||||
/* gestion des erreurs*/
|
||||
/**
|
||||
* Indique si une valeur est un entier positif ou nul
|
||||
* @param $valeur
|
||||
* @return vrai ou faux
|
||||
*/
|
||||
function estEntierPositif($valeur)
|
||||
{
|
||||
return preg_match("/[^0-9]/", $valeur) == 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Indique si un tableau de valeurs est constitué d'entiers positifs ou nuls
|
||||
* @param $tabEntiers : le tableau
|
||||
* @return vrai ou faux
|
||||
*/
|
||||
function estTableauEntiers($tabEntiers)
|
||||
{
|
||||
$ok = true;
|
||||
foreach($tabEntiers as $unEntier)
|
||||
{
|
||||
if(!estEntierPositif($unEntier)){$ok=false;}
|
||||
}
|
||||
return $ok;
|
||||
}
|
||||
/**
|
||||
* Vérifie si une date est inférieure d'un an à la date actuelle
|
||||
* @param $dateTestee
|
||||
* @return vrai ou faux
|
||||
*/
|
||||
function estDateDepassee($dateTestee)
|
||||
{
|
||||
$dateActuelle=date("d/m/Y");
|
||||
@list($jour,$mois,$annee) = explode('/',$dateActuelle);
|
||||
$annee--;
|
||||
$AnPasse = $annee.$mois.$jour;
|
||||
@list($jourTeste,$moisTeste,$anneeTeste) = explode('/',$dateTestee);
|
||||
return ($anneeTeste.$moisTeste.$jourTeste < $AnPasse);
|
||||
}
|
||||
/**
|
||||
* Vérifie la validité du format d'une date française jj/mm/aaaa
|
||||
* @param $date
|
||||
* @return vrai ou faux
|
||||
*/
|
||||
function estDateValide($date){
|
||||
$tabDate = explode('/',$date);
|
||||
$dateOK = true;
|
||||
if (count($tabDate) != 3) {
|
||||
$dateOK = false;
|
||||
}
|
||||
else {
|
||||
if (!estTableauEntiers($tabDate)) {
|
||||
$dateOK = false;
|
||||
}
|
||||
else {
|
||||
if (!checkdate($tabDate[1], $tabDate[0], $tabDate[2])) {
|
||||
$dateOK = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $dateOK;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ajoute le libelle d'une erreur au tableau des erreurs
|
||||
* @param $msg : le libellé de l'erreur
|
||||
*/
|
||||
function ajouterErreur($msg){
|
||||
if (! isset($_REQUEST['erreurs'])){
|
||||
$_REQUEST['erreurs']=array();
|
||||
}
|
||||
$_REQUEST['erreurs'][]=$msg;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retoune le nombre de lignes du tableau des erreurs
|
||||
* @return le nombre d'erreurs
|
||||
*/
|
||||
function nbErreurs(){
|
||||
if (!isset($_REQUEST['erreurs'])){
|
||||
return 0;
|
||||
}
|
||||
else{
|
||||
return count($_REQUEST['erreurs']);
|
||||
}
|
||||
}
|
||||
|
||||
/** afficherErreurSQL :
|
||||
Affichage de messages lors l'accès à la bdd avec une requete SQL
|
||||
@param $message : message a afficher
|
||||
@param $req : requete executee
|
||||
@param $info : erreur constatee
|
||||
*/
|
||||
function afficherErreurSQL($message, $req, $info) {
|
||||
echo $message . "<br />";
|
||||
echo "Requete : " . $req . "<br />";
|
||||
echo "Code erreur : " . $info[0] . ", Message : " . $info[2];
|
||||
die();
|
||||
}
|
||||
?>
|
312
include/proceduresJava.js
Normal file
312
include/proceduresJava.js
Normal file
@@ -0,0 +1,312 @@
|
||||
// proceduresJava.js / version modifiée le 18/09/2023 par Pascal Blain
|
||||
var ongletActif=1;
|
||||
// ========================= passer le focus à un champ
|
||||
function donner_focus(frm,champ) {
|
||||
document.forms[frm].elements[champ].focus();
|
||||
}
|
||||
// ========================= fonction gestion de la fenetre de saisie d'une disponibilité
|
||||
function majDispo(laDate, laTranche, exDispo) {
|
||||
document.getElementById("ztJour").innerHTML = laDate;
|
||||
document.getElementById("brDispo" + exDispo).checked=true;
|
||||
document.forms["frmActivites"].ztLaDate.value = laDate.substring(6) + "/" + laDate.substring(3,5) + "/" + laDate.substring(0,2);
|
||||
document.forms["frmActivites"].ztLaTranche.value= laTranche;
|
||||
document.forms["frmActivites"].ztExDispo.value = exDispo;
|
||||
location.href="#fenetreDispo";
|
||||
}
|
||||
// ========================= fonction gestion des gardes
|
||||
function majGarde(laDate, laTranche, laGarde, lePompier) {
|
||||
document.forms["frmDispos"].ztLaDate.value = laDate.substring(6) + "/" + laDate.substring(3,5) + "/" + laDate.substring(0,2);
|
||||
document.forms["frmDispos"].ztLaTranche.value = laTranche;
|
||||
document.forms["frmDispos"].ztExGarde.value = laGarde;
|
||||
document.forms["frmDispos"].ztPompier.value = lePompier;
|
||||
document.forms["frmDispos"].action = "index.php?choixTraitement=gardes&action=majGarde";
|
||||
document.forms["frmDispos"].submit();
|
||||
}
|
||||
// ========================= fonction de navigation dans le calendrier des dispos
|
||||
function autreSemaine(semaine, annee) {
|
||||
document.forms["frmDispos"].zSemaine.value = semaine;
|
||||
document.forms["frmDispos"].zAnnee.value = annee;
|
||||
document.forms["frmDispos"].submit();
|
||||
}
|
||||
// ========================= fonctions de navigation dans la liste de choix
|
||||
function premier(frm, liste) {
|
||||
document.forms[frm].elements[liste].value = document.forms[frm].elements[liste].options[0].value;
|
||||
document.forms[frm].submit();
|
||||
}
|
||||
function precedent(frm, liste) {
|
||||
document.forms[frm].elements[liste].value = document.forms[frm].elements[liste].options[Math.max(0,document.forms[frm].elements[liste].selectedIndex-1)].value;
|
||||
document.forms[frm].submit();
|
||||
}
|
||||
function suivant(frm, liste) {
|
||||
document.forms[frm].elements[liste].value = document.forms[frm].elements[liste].options[(Math.min((document.forms[frm].elements[liste].options.length-1),document.forms[frm].elements[liste].selectedIndex+1))].value;
|
||||
document.forms[frm].submit();
|
||||
}
|
||||
function dernier(frm, liste) {
|
||||
document.forms[frm].elements[liste].value = document.forms[frm].elements[liste].options[(document.forms[frm].elements[liste].options.length-1)].value;
|
||||
document.forms[frm].submit();
|
||||
}
|
||||
// =========================
|
||||
function faire(frm, action) {
|
||||
document.forms[frm].action.value = action;
|
||||
if(action=="supprimer") {alert("ATTENTION : \n demande de suppression \n cette action est irreversible !");}
|
||||
document.forms[frm].submit();
|
||||
}
|
||||
// =========================
|
||||
function validerAutre(frm, ordreAc, ordreCe, onglet)
|
||||
{
|
||||
document.getElementById("zOrdreAc").value=ordreAc;
|
||||
document.getElementById("zOrdreCe").value=ordreCe;
|
||||
document.getElementById("zOnglet").value=onglet;
|
||||
document.forms[frm].submit();
|
||||
}
|
||||
// =========================
|
||||
function voirListe(type, indice, colonne)
|
||||
{
|
||||
document.forms["choixP"].zType.value=type;
|
||||
document.forms["choixP"].zIndice.value=indice;
|
||||
document.forms["choixP"].zColonne.value=colonne;
|
||||
document.forms["choixP"].action.value = "liste";
|
||||
document.forms["choixP"].submit();
|
||||
}
|
||||
|
||||
// ========================= fonction annulation de saisie ou modification
|
||||
function annuler(frm){
|
||||
document.forms[frm].elements["zOk"].value="nonOk";
|
||||
document.forms[frm].submit();
|
||||
}
|
||||
|
||||
// ========================= validation des données d'un usager (version 2)
|
||||
function validerUsager(frm)
|
||||
{ //var champ=frm.elements["ztNom"];
|
||||
if(!verifTexte(frm, frm.elements["ztNom"], 40)) {return false;}
|
||||
else {if(!verifTexte(frm, frm.elements["ztPrenom"], 24)) {return false;}
|
||||
else {if(!verifMail(frm, frm.elements["ztEMail"])) {return false;}
|
||||
else {return true;}
|
||||
}
|
||||
}
|
||||
}
|
||||
// =========================
|
||||
function verifMail(frm, champ)
|
||||
{
|
||||
var regex = /^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/;
|
||||
if(regex.test(champ.value) || champ.value.length<1)
|
||||
{surligne(champ, false); return true;}
|
||||
else
|
||||
{surligne(champ, true); return false;}
|
||||
}
|
||||
// ========================= fonctions de controle de validité d'un champ
|
||||
function surligne(frm, champ, erreur)
|
||||
{
|
||||
if(erreur)
|
||||
{champ.style.backgroundColor = "#f55"; alert("Champ '"+champ.id+"' incorrect ...\nMerci de corriger"); document.getElementById(champ.id).focus(); frm.elements["zOk"].value="nonOk";}
|
||||
else
|
||||
{champ.style.backgroundColor = "#fff"; frm.elements["zOk"].value="OK";}
|
||||
}
|
||||
|
||||
// ========================= fonctions de controle de validité d'un champ texte (longueur)
|
||||
function verifTexte(frm, champ,longueur)
|
||||
{
|
||||
if(champ.value.length < 2 || champ.value.length > longueur)
|
||||
{surligne(frm, champ, true); return false;}
|
||||
else
|
||||
{surligne(frm, champ, false); return true;}
|
||||
}
|
||||
// ========================= fonctions de controle de validité du code postal
|
||||
function verifCP(frm, champ)
|
||||
{ var str = champ.value;
|
||||
var insee = str.substring(0,5);
|
||||
var dep = str.substring(0,2);
|
||||
var cPostal = str.substring(6,11);
|
||||
var secteur= str.substring(12,16);
|
||||
var ville = str.substring(17,57);
|
||||
var cp = parseInt(cPostal);
|
||||
if(isNaN(cp) || cp < 1000 || cp > 99999) {surligne(frm, champ, true); alert(cp); return false;} //
|
||||
else { surligne(frm, champ, false);
|
||||
frm.elements["ztCP"].value =cPostal;
|
||||
frm.elements["ztVille"].value =ville;
|
||||
frm.elements["ztCommune"].value =insee;
|
||||
frm.elements["departement"].value =dep;
|
||||
if(frm.name="frmUsager")
|
||||
{
|
||||
for (var i=0;i<frm.elements["ldrSecteur"].length;i++)
|
||||
{
|
||||
if(frm.elements["ldrSecteur"].options[i].value==secteur) {frm.elements["ldrSecteur"].selectedIndex=i; i=9999;}
|
||||
}
|
||||
}
|
||||
return true;}
|
||||
}
|
||||
// ========================= fonctions de controle de validité d'une date
|
||||
function verifDate(laDate)
|
||||
{
|
||||
var ok=true;
|
||||
var d=laDate.value;
|
||||
laDate.style.backgroundColor="#fff";
|
||||
if(d != null && d != "")
|
||||
{
|
||||
var amini=1900; // année mini
|
||||
var amax=2030; // année maxi
|
||||
var separateur="/"; // séparateur entre jour/mois/annee
|
||||
var j=(d.substring(0,2));
|
||||
var m=(d.substring(3,5));
|
||||
var a=(d.substring(6));
|
||||
|
||||
if ( ((isNaN(j))||(j<1)||(j>31)) && (ok==1) ) {alert(j+" n'est pas un jour correct..."); laDate.style.backgroundColor="#f55"; ok=false;}
|
||||
if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) ) {alert(m+" n'est pas un mois correct ..."); laDate.style.backgroundColor="#f55"; ok=false;}
|
||||
if ( ((isNaN(a))||(a<amini)||(a>amax)) && (ok==1) ) {alert(a+" n'est pas une année correcte: utiliser 4 chiffres, \n elle doit être comprise entre "+amini+" et "+amax); laDate.style.backgroundColor="#f55"; ok=false;}
|
||||
if ( ((d.substring(2,3)!=separateur)||(d.substring(5,6)!=separateur)) && (ok==1) ) {alert("Les séparateurs doivent être des "+separateur); laDate.style.backgroundColor="#f55"; ok=false;}
|
||||
if (ok==true) {
|
||||
var d2=new Date(a,m-1,j);
|
||||
j2=d2.getDate();
|
||||
m2=d2.getMonth()+1;
|
||||
a2=d2.getFullYear();
|
||||
if (a2<=100) {a2=1900+a2}
|
||||
if ( (j!=j2)||(m!=m2)||(a!=a2) ) {alert("La date "+d+" n'existe pas !"); laDate.style.backgroundColor="#f55"; ok=false;}
|
||||
}
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
// ========================= formate un nombre avec 2 chiffres après la virgule et un espace separateur de milliers
|
||||
function format_euro(valeur) {
|
||||
var ndecimal=2;
|
||||
var separateur=' ';
|
||||
var deci=Math.round( Math.pow(10,ndecimal)*(Math.abs(valeur)-Math.floor(Math.abs(valeur)))) ;
|
||||
var val=Math.floor(Math.abs(valeur));
|
||||
if ((ndecimal==0)||(deci==Math.pow(10,ndecimal))) {val=Math.floor(Math.abs(valeur)); deci=0;}
|
||||
var val_format=val+"";
|
||||
var nb=val_format.length;
|
||||
for (var i=1;i<4;i++)
|
||||
{
|
||||
if (val>=Math.pow(10,(3*i)))
|
||||
{
|
||||
val_format=val_format.substring(0,nb-(3*i))+separateur+val_format.substring(nb-(3*i));
|
||||
}
|
||||
}
|
||||
if (ndecimal>0)
|
||||
{
|
||||
var decim="";
|
||||
for (var j=0;j<(ndecimal-deci.toString().length);j++) {decim+="0";}
|
||||
deci=decim+deci.toString();
|
||||
val_format=val_format+","+deci;
|
||||
}
|
||||
if (parseFloat(valeur)<0) {val_format="-"+val_format;}
|
||||
return val_format;
|
||||
}
|
||||
|
||||
// ========================= affiche l'onglet choisi
|
||||
function Affiche(ongletChoisi, nb)
|
||||
{
|
||||
for(i=1;i<nb+1;i++)
|
||||
{
|
||||
document.getElementById('onglet'+i).className = 'inactif onglet';
|
||||
document.getElementById('contenuOnglet'+i).style.display = 'none';
|
||||
}
|
||||
document.getElementById('onglet'+ongletChoisi).className = 'actif onglet';
|
||||
document.getElementById('contenuOnglet'+ongletChoisi).style.display = 'block';
|
||||
|
||||
document.getElementById('zOnglet').value=ongletChoisi;
|
||||
document.getElementById('zNbOnglets').value=nb;
|
||||
ongletActif=ongletChoisi;
|
||||
}
|
||||
// ========================= transfert des données d'une liste à une autre
|
||||
function deplacer_elements(frm, origine, destination) {
|
||||
if (origine.options.selectedIndex >= 0)
|
||||
{
|
||||
while (origine.options.selectedIndex >= 0) /* boucle tant qu'il reste des éléments sélectionnés */
|
||||
{
|
||||
valeur = origine.options[origine.options.selectedIndex].value; /* valeur de l'élément sélectionné */
|
||||
texte = origine.options[origine.options.selectedIndex].text; /* texte de l'élément sélectionné */
|
||||
origine.options[origine.options.selectedIndex] = null; /* suppression de l'element selectione dans la liste d'origine */
|
||||
destination.options[destination.options.length] = new Option(texte, valeur);/* ajout dans la liste destination */
|
||||
}
|
||||
var nbElements=destination.length;
|
||||
var tbl = new Array(nbElements, 2)
|
||||
|
||||
for(ligne=0;ligne<nbElements;ligne++){
|
||||
tbl[ligne] = new Array(destination.options[ligne].text, destination.options[ligne].value);
|
||||
}
|
||||
tbl.sort(triAlpha);
|
||||
destination.options.length=0; /* efface la liste */
|
||||
for(ligne=0;ligne<nbElements;ligne++){
|
||||
destination.options[destination.options.length]=new Option(tbl[ligne][0],tbl[ligne][1]); //rempli la liste avec les données triées
|
||||
}
|
||||
}
|
||||
else
|
||||
alert("choisissez au moins un participant !");
|
||||
return(false);
|
||||
}
|
||||
// =========================
|
||||
function triAlpha(a,b) {
|
||||
a = a[0];
|
||||
b = b[0];
|
||||
return a == b ? 0 : (a < b ? -1 : 1)
|
||||
}
|
||||
// =========================
|
||||
function tester(frm, liste) {
|
||||
var nbElements=liste.length;
|
||||
var tbl = new Array(nbElements, 2)
|
||||
|
||||
for(ligne=0;ligne<nbElements;ligne++){
|
||||
tbl[ligne] = new Array(liste.options[ligne].text, liste.options[ligne].value);
|
||||
//alert("Valeur : " + tbl[ligne][1] + " Texte :" + tbl[ligne][0]);
|
||||
}
|
||||
tbl.sort(triAlpha);
|
||||
liste.options.length=0; //efface la liste
|
||||
for(ligne=0;ligne<nbElements;ligne++){
|
||||
liste.options[liste.options.length]=new Option(tbl[ligne][0],tbl[ligne][1]); //rempli la liste avec les données triees
|
||||
// alert("Valeur : " + tbl[element,1] + " libellé : " + tbl[element,0]);
|
||||
}
|
||||
result = tbl.join('\n');
|
||||
alert(result);
|
||||
return (false);
|
||||
}
|
||||
// =========================trouver un code postal en france, ou une commune
|
||||
// parametres d'entrée : (L'un des 2 champs ne doit pas être vide. Sinon, c'est Paris qui est pris par défaut.)
|
||||
// - codePostal : l'ID du champs contenant le code postal
|
||||
// - ville : l'ID du champs contenant le nom de la commune
|
||||
|
||||
function openCodesPostaux(codePostal, ville){
|
||||
leCodePostal = document.getElementById(codePostal).value;
|
||||
laVille = document.getElementById(ville).value;
|
||||
if(laVille == ""){ laVille = leCodePostal;}
|
||||
window.open( 'http://www.codes-postaux.org/outils/module.php?Choix=' + escape(laVille) ,'CodePostal','scrollbars=yes, width=300, height=550');
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Gere l'ajout des dispo pour un pompier
|
||||
*/
|
||||
$(document).on('click', '.select-dispo', function () {
|
||||
//console.log($(this).css('background-color'))
|
||||
|
||||
dateDispo = $(this).attr('id').split('/')[0]
|
||||
tranche = $(this).attr('id').split('/')[1]
|
||||
dispo = 1;
|
||||
|
||||
if ($(this).css('background-color') == "rgb(255, 0, 0)") { //rgb(255, 0, 0) = red
|
||||
$(this).css('background-color', 'green');
|
||||
dispo = 2;
|
||||
} else if ($(this).css('background-color') == 'rgb(0, 128, 0)') { //rgb(0, 128, 0) = green
|
||||
$(this).css('background-color', 'yellow');
|
||||
dispo = 3;
|
||||
} else {
|
||||
$(this).css('background-color', 'red');
|
||||
dispo = 1;
|
||||
}
|
||||
|
||||
var tableauDeDonnees = {
|
||||
"date" : dateDispo,
|
||||
"tranche" : tranche,
|
||||
"dispo" : dispo
|
||||
}
|
||||
$.ajax({
|
||||
url: "/controleurs/c_disponibilitée.php", // URL de l'API ou de la ressource
|
||||
method: "POST", // Méthode HTTP (GET, POST, etc.)
|
||||
dataType: "json", // Type de données attendu
|
||||
data : tableauDeDonnees,
|
||||
error: function(xhr, status, error) {
|
||||
// Gérer les erreurs de la requête AJAX
|
||||
console.error("Erreur lors de la requête AJAX :", status, error);
|
||||
}
|
||||
});
|
||||
})
|
Reference in New Issue
Block a user