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
Ensuite le fichier php faisant interface :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Enfin le deuxième php qui doit enregistrer les données :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
libre à vous de vous en servir
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Partager