loulipo | En fait je pense que tout est fait en php... Voilà le formulaire complet :
Code :
- <?php
- /* securité */
- $domaine = 'formations';
- include '../droits.inc.php';
- include '../../php/dbconnect.inc.php';
- $message = '';
- $action = $_GET['action'];
- $id = $_GET['id'];
- if (
- isset($_POST['theme']) && ($action == 'insert' || $action == 'update')
- ) {
- $theme = $_POST['theme'];
- if (isset($_POST['sousTheme'])) $sousTheme = $_POST['sousTheme'];
- else $sousTheme = '';
- if (isset($_POST['duree'])) $duree = $_POST['duree'];
- else $duree = '';
- if (isset($_POST['periodicite'])) $periodicite = $_POST['periodicite'];
- else $periodicite = '';
- if (isset($_POST['ad'])) $ad = $_POST['ad'];
- else $ad = '';
- if (isset($_POST['region'])) $region = $_POST['region'];
- else $region = '';
- if (isset($_POST['description'])) $description = $_POST['description'];
- else $description = '';
- if (isset($_POST['public'])) $public = $_POST['public'];
- else $public = '';
- if (isset($_POST['outils'])) $outils = $_POST['outils'];
- else $outils = '';
- if (isset($_POST['contact'])) $contact = $_POST['contact'];
- else $contact = '';
- if (isset($_POST['jourDebut'])) $jourDebut = $_POST['jourDebut'];
- else $jourDebut = '';
- if (isset($_POST['moisDebut'])) $moisDebut = $_POST['moisDebut'];
- else $moisDebut = '';
- if (isset($_POST['anneeDebut'])) $anneeDebut = $_POST['anneeDebut'];
- else $anneeDebut = '';
- if (isset($_POST['jourFin'])) $jourFin = $_POST['jourFin'];
- else $jourFin = '';
- if (isset($_POST['moisFin'])) $moisFin = $_POST['moisFin'];
- else $moisFin = '';
- if (isset($_POST['anneeFin'])) $anneeFin = $_POST['anneeFin'];
- else $anneeFin = '';
- if (empty($jourDebut))
- $jourDebut = '00';
- if (strlen($jourDebut) == 1)
- $jourDebut = '0'.$jourDebut;
- if (strlen($moisDebut) == 1)
- $moisDebut = '0'.$moisDebut;
- if (strlen($anneeDebut) == 1)
- $anneeDebut = '0'.$anneeDebut;
- $dateDebut = '20'.$anneeDebut.'-'.$moisDebut.'-'.$jourDebut;
- if (empty($jourFin))
- $jourFin = '00';
- if (strlen($jourFin) == 1)
- $jourFin = '0'.$jourFin;
- if (strlen($moisFin) == 1)
- $moisFin = '0'.$moisFin;
- if (strlen($anneeFin) == 1)
- $anneeFin = '0'.$anneeFin;
- $dateFin = '20'.$anneeFin.'-'.$moisFin.'-'.$jourFin;
- if ($action == 'insert') {
- $sql = "INSERT INTO formation_fiches VALUES('', '$theme', '$sousTheme', '$dateDebut',
- '$dateFin', '$duree', '$periodicite', '$ad', '$region', '$description', '$public',
- '$outils', '$contact')";
- mysql_query($sql) or die("<h1>Erreur INSERT.</h1>" );
- } else if ($action == 'update' && !empty($id)) {
- if ($_POST['detruire'] == 'detruire') {
- mysql_query("DELETE FROM formation_fiches WHERE id = '$id'" )
- or die ("erreur delete" );
- echo '<meta http-equiv="refresh" content="0;URL=admin.php">';
- exit();
- }
- $sql = "UPDATE formation_fiches SET theme = '$theme', sousTheme = '$sousTheme',
- dateDebut = '$dateDebut', dateFin = '$dateFin', duree = '$duree',
- periodicite = '$periodicite', ad = '$ad', region = '$region', description = '$description',
- public = '$public', outils = '$outils', contact = '$contact'
- WHERE id = '$id'";
- mysql_query($sql) or die("<h1>Erreur UPDATE.</h1>" );
- }
- $message = "<p><b>".$action." réussi</b></p>";
- }
- // date par défault
- $moisDebut = date('m');
- $anneeDebut = date('y');
- $moisFin = date('m');
- $anneeFin = date('y');
- /* variables de la fiche */
- if ($action == 'update' && !empty($id)) {
- $sql = "SELECT * FROM formation_fiches WHERE id='$id'";
- $result = mysql_query($sql) or die("<h1>ERREUR SELECT</h1>" );
- while ($row = mysql_fetch_object($result)) {
- // champs obligatoires
- $theme = $row->theme;
- $description = $row->description;
- $dateDebut = $row->dateDebut;
- $dateFin = $row->dateFin;
- // champs facultatifs
- if (isset($row->sousTheme)) $sousTheme = $row->sousTheme;
- else $sousTheme = '';
- if (isset($row->duree)) $duree = $row->duree;
- else $duree = '';
- if (isset($row->periodicite)) $periodicite = $row->periodicite;
- else $periodicite = '';
- if (isset($row->ad)) $departement = $row->ad;
- else $departement = '';
- if (isset($row->region)) $region = $row->region;
- else $region = '';
- if (isset($row->public)) $public = $row->public;
- else $public = '';
- if (isset($row->outils)) $outils = $row->outils;
- else $outils = '';
- if (isset($row->contact)) $contact = $row->contact;
- else $contact = '';
- // transformation des dates
- preg_match('/([[:digit:]]{2})([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})/',$dateDebut,$reg);
- if ($reg[4] == '00') $jourDebut = '';
- else $jourDebut = $reg[4];
- $moisDebut = $reg[3];
- $anneeDebut = $reg[2];
- preg_match('/([[:digit:]]{2})([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})/',$dateFin,$reg);
- if ($reg[4] == '00') $jourFin = '';
- else $jourFin = $reg[4];
- $moisFin = $reg[3];
- $anneeFin = $reg[2];
- }
- } else {
- $theme = '';
- $description = '';
- $sousTheme = '';
- $duree = '';
- $periodicite = '';
- $departement = '';
- $region = '';
- $public = '';
- $outils = '';
- $jourDebut = '';
- $jourFin = '';
- $contact = '';
- }
- function genereListeThemes() {
- $sql = "SELECT theme FROM formation_themes GROUP BY theme ORDER BY theme";
- $result = mysql_query($sql);
- while ( $data = mysql_fetch_object($result) ) {
- global $theme;
- if ($data->theme == $theme)
- $theme_selected = ' selected';
- else $theme_selected = '';
- echo '
- <option'.$theme_selected.'>'.$data->theme.'</option>';
- }
- }
- function genereListeRegion() {
- $t_regions = array(
- 'National','Alsace', 'Aquitaine', 'Auvergne', 'Basse-Normandie', 'Bourgogne',
- 'Bretagne', 'Centre', 'Champagne-Ardenne', 'DOM', 'Franche-Comté',
- 'Haute-Normandie', 'Ile-de-France', 'Languedoc-Roussillon', 'Limousin',
- 'Lorraine', 'Midi-Pyrénées', 'Nord-Pas-de-Calais',
- 'Pays de la Loire', 'Picardie', 'Poitou-Charentes', 'PACA', 'Rhône-Alpes'
- );
- foreach($t_regions as $v_region) {
- global $region;
- if ($v_region == $region)
- $region_selected = ' selected';
- else $region_selected = '';
- echo '
- <option'.$region_selected.'>'.$v_region.'</option>';
- }
- }
- function genereListeAD() {
- global $departement;
- $sql = "SELECT departement FROM assosDepartementales WHERE ADouGL = 'AD' ORDER BY departement";
- $result = mysql_query($sql);
- while ( $data = mysql_fetch_object($result) ) {
- if ($data->departement == $departement)
- $departement_selected = ' selected';
- else $departement_selected = '';
- echo '
- <option'.$departement_selected.'>'.$data->departement.'</option>';
- }
- }
- /*
- * la variable $ecrireOnLoad permet d'écrire dans
- * la balise <body> du fichier htmlHautPage.inc.php
- * le thème est toujours rempli sur une fiche à updater donc on appel toujours genereSousTheme()
- * si le sousTheme est rempli, il faut appeler genereSousSousTheme()
- */
- $appel_javascript = " genereSousTheme('$theme','onLoad');";
- $ecrireOnLoad = " onLoad=\"$appel_javascript\"";
- include '../htmlHautPage.inc.php';
- ?>
- <script type="text/javascript">
- function ajax(cible,event) {
- var xmlhttp = false;
- // Compilation conditionnelle d'IE
- /*@cc_on
- @if (@_jscript_version >= 5)
- try {
- xmlhttp = new ActiveXObject("Msxml2.XMLHTTP" );
- } catch (e) {
- try {
- xmlhttp = new ActiveXObject("Microsoft.XMLHTTP" );
- } catch (E) {
- xmlhttp = false;
- }
- }
- @else
- xmlhttp = false;
- @end @*/
- // on essaie de créer l'objet si ce n'est pas déjà fait
- if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
- try {
- xmlhttp = new XMLHttpRequest();
- } catch (e) {
- xmlhttp = false;
- }
- }
- if (xmlhttp) {
- // on définit ce qui doit se passer quand la page répondra
- xmlhttp.onreadystatechange = function() {
- if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
- // Traitement de la réponse.
- tableauResultats = xmlhttp.responseText.split("|" );
- document.getElementsByName(cible)[0].innerHTML = "";
- for ( i in tableauResultats ) {
- // on regarde si il faut ajouter l'attribut selected au chargement de la page
- if ( event == 'onLoad' && tableauResultats[i] == '<?= $sousTheme ?>')
- elem = new Option(tableauResultats[i],tableauResultats[i],false,true);
- else elem = new Option(tableauResultats[i],tableauResultats[i],false,false);
- document.getElementsByName(cible)[0].appendChild(elem);
- if (tableauResultats.length > 2) document.getElementsByName(cible)[0].style.display="";
- else document.getElementsByName(cible)[0].style.display="none";
- }
- }
- }
- }
- return xmlhttp;
- }
- function call_ajax(url,cible,event){
- var xmlhttp = ajax(cible,event);
- xmlhttp.open("GET", url,true);
- xmlhttp.send(null);
- }
- function genereSousTheme(theme,event) {
- /*
- * lorsque le thème est choisi, on affiche le menu sousTheme
- */
- if (theme != "" ) {
- // utilisation de XMLHttpRequest pour mettre à jour le sousTheme
- url = "ajax.php?theme=" + encodeURIComponent(theme);
- call_ajax(url,"sousTheme",event);
- } else {
- document.getElementsByName("sousTheme" )[0].style.display="none";
- }
- }
- function addzero(nombre) {
- // si la case est vide on met 00
- if (nombre.length == 0) nombre = "00";
- // si il n'y a qu'un chiffre, on place un zéro avant
- else if (nombre.length == 1) nombre = "0" + nombre;
- return nombre;
- }
- function verifierDates() {
- /*
- on concatène annee, mois, jour dans un string
- et on compare les strings :
- si date de début est supérieure date de fin
- on signale une erreur
-
- la fonction addzero gère les entrées vide ou les nombres à un seul chiffre
- qui pourraient fausser la comparaison
- */
- jourDebut = addzero(document.getElementsByName('jourDebut')[0].value);
- moisDebut = addzero(document.getElementsByName('moisDebut')[0].value);
- anneeDebut = addzero(document.getElementsByName('anneeDebut')[0].value);
- dateYMDdebut = anneeDebut + moisDebut + jourDebut;
- jourFin = addzero(document.getElementsByName('jourFin')[0].value);
- moisFin = addzero(document.getElementsByName('moisFin')[0].value);
- anneeFin = addzero(document.getElementsByName('anneeFin')[0].value);
- dateYMDfin = anneeFin + moisFin + jourFin;
- if (dateYMDdebut > dateYMDfin) return false;
- else return true;
- }
- function verifierAvantEnvoi() {
- // si cette fonction retourne false, le formulaire n'est pas envoyé
- var drapeau = true;
- var listeErreurs = "Erreurs :\n";
- var champsObligatoires = new Array(
- 'theme',
- 'moisDebut',
- 'anneeDebut',
- 'moisFin',
- 'anneeFin',
- 'description'
- );
- if (drapeau == false) {
- alert(listeErreurs);
- return false;
- }
- if (!verifierDates()) {
- alert("Erreur : la date de début ne peut pas être supérieure à celle de fin" );
- return false;
- }
- return true;
- }
- </script>
- <style type="text/css">
- fieldset {
- padding: 1em;
- font-weight: bold;
- }
- fieldset br {
- clear: both;
- }
- label {
- display: inline;
- float: left;
- width: 130px;
- font-weight: bold;
- }
- label, input, textarea, select {
- margin-bottom: 1em;
- }
- </style>
- <?= $message ?>
- <p><a href="admin.php">Retour</a></p>
- <form action="fiches.php?action=<?= $action ?>&id=<?= $id ?>" method="post" onSubmit="return verifierAvantEnvoi()">
- <fieldset>
- <legend>Fiche de saisie</legend>
- <label for="theme">Indexation</label>
- <select name="theme" size="1" onChange="genereSousTheme(this.value)">
- <option selected></option>
- <? genereListeThemes(); ?>
- </select>
- <select name="sousTheme" size="1" style="<?= $styleSousTheme ?>">
- <option></option>
- </select>
- <br/>
- <label for="jourDebut">Date de début de la formation</label>
- <input type="text" name="jourDebut" value="<?= $jourDebut ?>" size="2" maxlength="2"/>
- <input type="text" name="moisDebut" value="<?= $moisDebut ?>" size="2" maxlength="2"/>
- <input type="text" name="anneeDebut" value="<?= $anneeDebut ?>" size="2" maxlength="2"/>
- <br/>
- <label for="jourFin">Date de fin de la formation</label>
- <input type="text" name="jourFin" value="<?= $jourFin ?>" size="2" maxlength="2"/>
- <input type="text" name="moisFin" value="<?= $moisFin ?>" size="2" maxlength="2"/>
- <input type="text" name="anneeFin" value="<?= $anneeFin ?>" size="2" maxlength="2"/>
- <br/>
- <label for="duree">Durée</label>
- <input type="text" name="duree" value="<?= $duree ?>" size="50" maxlength="50"/>
- <br/>
- <label for="periodicite">Périodicité</label>
- <input type="text" name="periodicite" value="<?= $periodicite ?>" size="50" maxlength="50"/>
- <br/>
- <label for="ad">AD</label>
- <select name="ad">
- <option></option>
- <? genereListeAD(); ?>
- </select>
- <br/>
- <label for="region">Région</label>
- <select name="region">
- <option></option>
- <? genereListeRegion(); ?>
- </select>
- <br/>
- <label for="description">Description</label>
- <textarea name="description" cols="70" rows="5"><?= $description ?></textarea>
- <br/>
- <label for="public">Public</label>
- <textarea name="public" cols="70" rows="5"><?= $public ?></textarea>
- <br/>
- <label for="outils">Outils</label>
- <textarea name="outils" cols="70" rows="5"><?= $outils ?></textarea>
- <br/>
- <label for="contact">Information de contact</label>
- <textarea name="contact" cols="70" rows="5"><?= $contact ?></textarea>
- <br/>
- <input type="submit" value="ok" class="boutonBleu"/>
- <?
- if ($action == 'update') {
- echo '
- <br/>
- <br/>
- <br/>
- <input type="submit" name="detruire" value="detruire" class="boutonRouge"/>
- ';
- }
- ?>
- </fieldset>
- </form>
- </div>
- </body>
- </html>
- <?
- mysql_close();
- ?>
|
|