defaut enregistrement données
bonjour tous , j'ai EasyPHP 12.1 sur mon ordi et je voulait en profiter pour écrire une ptite application de gestion de mes congés ...
Le problème ? je n'arrive pas à enregistrer correctement les données sur un fichier !? ça fait des jours que je cherche le problème mais je ne vois rien venir ... En désespoir de cause je vous soumet mon code , espérant une aide bienveillante :
D'abord le premier fichier : Il contient le fichier xml de départ
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <?xml version="1.0" encoding="iso-8859-1"?>
<Calendrier annee="2013">
<date mois="1" jour="1"/>
<AGENT></AGENT>
<mois id="janvier">janvier<j n="1" t="CA">ai-af</j><j n="2"/><j n="3"/><j n="4"/><j n="5"/><j n="6"/><j n="7"/><j n="8"/><j n="9"/><j n="10"/><j n="11"/><j n="12"/><j n="13"/><j n="14"/><j n="15"/><j n="16"/><j n="17"/><j n="18"/><j n="19"/><j n="20"/><j n="21"/><j n="22"/><j n="23"/><j n="24"/><j n="25"/><j n="26"/><j n="27"/><j n="28"/><j n="29"/><j n="30"/><j n="31"/></mois>
<mois id="fevrier">fevrier<j n="1"/><j n="2"/><j n="3"/><j n="4"/><j n="5"/><j n="6"/><j n="7"/><j n="8"/><j n="9"/><j n="10"/><j n="11"/><j n="12"/><j n="13"/><j n="14"/><j n="15"/><j n="16"/><j n="17"/><j n="18"/><j n="19"/><j n="20"/><j n="21"/><j n="22"/><j n="23"/><j n="24"/><j n="25"/><j n="26"/><j n="27"/><j n="28"/></mois>
<mois id="mars">mars<j n="1"/><j n="2"/><j n="3"/><j n="4"/><j n="5"/><j n="6"/><j n="7"/><j n="8"/><j n="9"/><j n="10"/><j n="11"/><j n="12"/><j n="13"/><j n="14"/><j n="15"/><j n="16"/><j n="17"/><j n="18"/><j n="19"/><j n="20"/><j n="21"/><j n="22"/><j n="23"/><j n="24"/><j n="25"/><j n="26"/><j n="27"/><j n="28"/><j n="29"/><j n="30"/><j n="31"/></mois>
<mois id="avril">avril<j n="1"/><j n="2"/><j n="3"/><j n="4"/><j n="5"/><j n="6"/><j n="7"/><j n="8"/><j n="9"/><j n="10"/><j n="11"/><j n="12"/><j n="13"/><j n="14"/><j n="15"/><j n="16"/><j n="17"/><j n="18"/><j n="19"/><j n="20"/><j n="21"/><j n="22"/><j n="23"/><j n="24"/><j n="25"/><j n="26"/><j n="27"/><j n="28"/><j n="29"/><j n="30"/></mois>
<mois id="mai">mai<j n="1"/><j n="2"/><j n="3"/><j n="4"/><j n="5"/><j n="6"/><j n="7"/><j n="8"/><j n="9"/><j n="10"/><j n="11"/><j n="12"/><j n="13"/><j n="14"/><j n="15"/><j n="16"/><j n="17"/><j n="18"/><j n="19"/><j n="20"/><j n="21"/><j n="22"/><j n="23"/><j n="24"/><j n="25"/><j n="26"/><j n="27"/><j n="28"/><j n="29"/><j n="30"/><j n="31"/></mois>
<mois id="juin">juin<j n="1"/><j n="2"/><j n="3"/><j n="4"/><j n="5"/><j n="6"/><j n="7"/><j n="8"/><j n="9"/><j n="10"/><j n="11"/><j n="12"/><j n="13"/><j n="14"/><j n="15"/><j n="16"/><j n="17"/><j n="18"/><j n="19"/><j n="20"/><j n="21"/><j n="22"/><j n="23"/><j n="24"/><j n="25"/><j n="26"/><j n="27"/><j n="28"/><j n="29"/><j n="30"/></mois>
<mois id="juillet">juillet<j n="1"/><j n="2"/><j n="3"/><j n="4"/><j n="5"/><j n="6"/><j n="7"/><j n="8"/><j n="9"/><j n="10"/><j n="11"/><j n="12"/><j n="13"/><j n="14"/><j n="15"/><j n="16"/><j n="17"/><j n="18"/><j n="19"/><j n="20"/><j n="21"/><j n="22"/><j n="23"/><j n="24"/><j n="25"/><j n="26"/><j n="27"/><j n="28"/><j n="29"/><j n="30"/><j n="31"/></mois>
<mois id="aout">aout<j n="1"/><j n="2"/><j n="3"/><j n="4"/><j n="5"/><j n="6"/><j n="7"/><j n="8"/><j n="9"/><j n="10"/><j n="11"/><j n="12"/><j n="13"/><j n="14"/><j n="15"/><j n="16"/><j n="17"/><j n="18"/><j n="19"/><j n="20"/><j n="21"/><j n="22"/><j n="23"/><j n="24"/><j n="25"/><j n="26"/><j n="27"/><j n="28"/><j n="29"/><j n="30"/><j n="31"/></mois>
<mois id="septembre">septembre<j n="1"/><j n="2"/><j n="3"/><j n="4"/><j n="5"/><j n="6"/><j n="7"/><j n="8"/><j n="9"/><j n="10"/><j n="11"/><j n="12"/><j n="13"/><j n="14"/><j n="15"/><j n="16"/><j n="17"/><j n="18"/><j n="19"/><j n="20"/><j n="21"/><j n="22"/><j n="23"/><j n="24"/><j n="25"/><j n="26"/><j n="27"/><j n="28"/><j n="29"/><j n="30"/></mois>
<mois id="octobre">octobre<j n="1"/><j n="2"/><j n="3"/><j n="4"/><j n="5"/><j n="6"/><j n="7"/><j n="8"/><j n="9"/><j n="10"/><j n="11"/><j n="12"/><j n="13"/><j n="14"/><j n="15"/><j n="16"/><j n="17"/><j n="18"/><j n="19"/><j n="20"/><j n="21"/><j n="22"/><j n="23"/><j n="24"/><j n="25"/><j n="26"/><j n="27"/><j n="28"/><j n="29"/><j n="30"/><j n="31"/></mois>
<mois id="novembre">novembre<j n="1"/><j n="2"/><j n="3"/><j n="4"/><j n="5"/><j n="6"/><j n="7"/><j n="8"/><j n="9"/><j n="10"/><j n="11"/><j n="12"/><j n="13"/><j n="14"/><j n="15"/><j n="16"/><j n="17"/><j n="18"/><j n="19"/><j n="20"/><j n="21"/><j n="22"/><j n="23"/><j n="24"/><j n="25"/><j n="26"/><j n="27"/><j n="28"/><j n="29"/><j n="30"/></mois>
<mois id="decembre">decembre<j n="1"/><j n="2"/><j n="3"/><j n="4"/><j n="5"/><j n="6"/><j n="7"/><j n="8"/><j n="9"/><j n="10"/><j n="11"/><j n="12"/><j n="13"/><j n="14"/><j n="15"/><j n="16"/><j n="17"/><j n="18"/><j n="19"/><j n="20"/><j n="21"/><j n="22"/><j n="23"/><j n="24"/><j n="25"/><j n="26"/><j n="27"/><j n="28"/><j n="29"/><j n="30"/><j n="31"/></mois>
</Calendrier> |
Ensuite le fichier php faisant interface :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
| <!DOCTYPE HTML>
<html>
<head>
<title>Nouvelle Recap</title>
<link rel="stylesheet" type="text/css" href="styles.css"></link>
<script>
var changements=new Array();
function changeConges(formulaire)
{
var types=["default","CA","FP","FR","HP","JS","RH","RR","RT"];
// récupérer les valeurs des champs : Mois Jour Genre Texte
var mois=formulaire.mois.value;
var jour=formulaire.jour.value;
var texte=formulaire.texte.value;
var g=formulaire.genre;
// récupérer le noeud du jour ciblé
var TR=document.getElementById(mois);
if(TR==null) {alert(mois+' ?? => Mois inconnu.');return;}// mois erroné
var TDs=TR.childNodes;
for(var i=0;i<TDs.length;i++)
{
if((TDs[i]['id'])==jour)
{
var index=0;var nbChoix=g.length;
while(index < nbChoix)
{
if(g[index].checked)
{
alert('CLASS : '+types[index]+'\nTEXT : '+types[index].toUpperCase());
// changement visuel du noeud : classe et texte
TDs[i].className=types[index];
TDs[i].innerHTML=texte;
// enregistrer les changements
changements[changements.length]=mois+'/'+jour+'/'+types[index]+'/'+texte;
break;
}
index++;
}
}
}
}
</script>
<script language="JavaScript" src="fonctions.js"></script>
</head>
<body>
<?php
$xml=new DOMDocument();
if (file_exists('Calendrier2013.xml'))
{
$xml->load('Calendrier2013.xml');
}
else
{
exit('Echec lors de l\'ouverture du fichier Calendrier2013.xml.');
}
?>
<h3 style="align:center">Calendrier</h3>
<table border="1">
<tr align="center" style="font-weight:bolder;"><td/>
<td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td>
<td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td>
<td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td>
</tr>
<?php
$mois=$xml->getElementsByTagName("mois");
foreach($mois as $month)
{
echo '<tr id="'.$month->firstChild->nodeValue.'">';
echo '<td>'.$month->firstChild->nodeValue.'</td>';
$jours=$month->getElementsByTagName("j");
foreach($jours as $jour)
{
switch($jour->getAttribute('t'))
{
case 'RH' :
echo '<td id="'.$jour->getAttribute("n").'" class="'.$jour->getAttribute("t").'">'.$jour->nodeValue.'</td>';
break;
case 'CA' :
echo '<td id="'.$jour->getAttribute("n").'" class="'.$jour->getAttribute("t").'">'.$jour->nodeValue.'</td>';
break;
case 'RT' :
echo '<td id="'.$jour->getAttribute("n").'" class="'.$jour->getAttribute("t").'">'.$jour->nodeValue.'</td>';
break;
case 'HP' :
echo '<td id="'.$jour->getAttribute("n").'" class="'.$jour->getAttribute("t").'">'.$jour->nodeValue.'</td>';
break;
case 'JS' :
echo '<td id="'.$jour->getAttribute("n").'" class="'.$jour->getAttribute("t").'">'.$jour->nodeValue.'</td>';
break;
case 'FR' :
echo '<td id="'.$jour->getAttribute("n").'" class="'.$jour->getAttribute("t").'">'.$jour->nodeValue.'</td>';
break;
case 'FP' :
echo '<td id="'.$jour->getAttribute("n").'" class="'.$jour->getAttribute("t").'">'.$jour->nodeValue.'</td>';
break;
case 'RR' :
echo '<td id="'.$jour->getAttribute("n").'" class="'.$jour->getAttribute("t").'">'.$jour->nodeValue.'</td>';
break;
default :
echo '<td id="'.$jour->getAttribute("n").'" class="default">'.$jour->nodeValue.'</td>';
}
}
echo '</tr>';
}
?>
</table>
<form name="formulaire" action="http://127.0.0.1/HTML/nouvelleRecap.php">
<span class="default">Otaf<input type="radio" name="genre" value="otaf" checked="true"/></span>
<span class="CA">CA<input type="radio" name="genre" value="CA"/></span>
<span class="FP">FP<input type="radio" name="genre" value="FP"/></span>
<span class="FR">FR<input type="radio" name="genre" value="FR"/></span>
<span class="HP">HP<input type="radio" name="genre" value="HP"/></span>
<span class="JS">JS<input type="radio" name="genre" value="JS"/></span>
<span class="RH">RH<input type="radio" name="genre" value="RH"/></span>
<span class="RR">RR<input type="radio" name="genre" value="RR"/></span>
<span class="RT">RT<input type="radio" name="genre" value="RT"/></span><br/>
Mois :<input type="text" name="mois" maxlength="10" size="10"/>
Jour :<input type="text" name="jour" maxlength="2" size="2"/>
Texte :<input type="text" name="texte" maxlength="6" size="6"/>
<button onclick="changeConges(document.formulaire);return false;">OK</button>
</form>
<pre> <a href="javascript:location='nouveauRecord.php?table='+changements;return false;"><button>enregistrement</button></a> <button onclick="CountDOMClasses(document.formulaire);return false;">Search</button></pre>
<p name="affichage"></p>
</body>
</html> |
Enfin le deuxième php qui doit enregistrer les données :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| <?php
$chaine=$_GET['table'];
// Ouverture du fichier XML
$xml=new DOMDocument();
if (file_exists('Calendrier2013.xml'))
{
$xml->load('Calendrier2013.xml');
}
else
{
exit('Echec lors de l\'ouverture du fichier Calendrier2013.xml.');
}
// découpage en tableau de chaînes
$table=explode(',',$chaine);
foreach($table as $valeur)
{
$changes=explode('/',$valeur);
// recherche du noeud cible
$mois=$xml->getElementsByTagName('mois');
foreach($mois as $month)
{
if($month->firstChild->nodeValue == $changes[0])
{
$jours=$month->getElementsByTagName('j');
foreach($jours as $jour)
{
if($jour->getAttribute('n') == $changes[1])
{
// crée le noeud remplaçant
$remplacant=$xml->createElement('j',$changes[3]);
// avec son attribut
$remplacant->setAttribute('n',$changes[1]);
$remplacant->setAttribute('t',$changes[2]);
$jour->parentNode->replaceChild($remplacant,$jour);
break;
}
}
break;
}
}
}
rename('Calendrier2013.xml','Calendrier2013-'.date('j-n-Y').'.xml');
$xml->save('Calendrier2013.xml');
?>
<script> document.location="nouvelleRecap.php"; </script> |
libre à vous de vous en servir