IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

defaut enregistrement données


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre averti
    Avatar de exe2bin
    Profil pro
    Passionné de programmation
    Inscrit en
    Mars 2009
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Passionné de programmation

    Informations forums :
    Inscription : Mars 2009
    Messages : 537
    Points : 387
    Points
    387
    Billets dans le blog
    3
    Par défaut 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 : 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>
    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
    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 : 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>
    libre à vous de vous en servir

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu aurais peut-être pu nous donner les noms des fichiers et nous parler un peu des problèmes rencontrés ; chez moi en tout cas ça a l'air de fonctionner.

    Deux petites remarques :
    - on peut mettre un numéro dans le mois
    - La fonction Javascript continue a parcourir les noeuds meme après voir trouvé le bon ; d'ailleurs si donnais "mois_jour" comme id a tes <td> tu n'aurais même pas besoin de les chercher.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Avatar de exe2bin
    Profil pro
    Passionné de programmation
    Inscrit en
    Mars 2009
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Passionné de programmation

    Informations forums :
    Inscription : Mars 2009
    Messages : 537
    Points : 387
    Points
    387
    Billets dans le blog
    3
    Par défaut
    Merci 'sabotage' pour l'intérêt que tu portes à mon problème.
    En fait , j'ai 2 ordis à la maison ; un "vista" et un "xp" .
    Curieusement , le programme fonctionne sous XP mais pas sous Vista ;
    à savoir l'enregistrement des nouvelles données dans le fichier Calendrier2013.xml .
    La vrai question est celle ci : Pourquoi le MEME programme refuse-t-il de fonctionner d'un ordi l'autre ? Y a-t-il aussi une raison due au navigateur (firefox sur l'un et google sur l'autre) ?
    Autant de questions sans réponses ..........

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    La seule façon d'y répondre est de debuguer.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Enregistrer données Excel dans Base MySQL
    Par davasm dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 22/05/2006, 14h34
  2. Enregistrement données
    Par Gebudi. dans le forum Access
    Réponses: 4
    Dernier message: 30/04/2006, 18h19
  3. Réponses: 3
    Dernier message: 27/04/2006, 10h01
  4. Ouvrir un formulaire sur un enregistrement donné
    Par gaetanc15 dans le forum Langage
    Réponses: 6
    Dernier message: 14/03/2006, 10h19
  5. Réponses: 2
    Dernier message: 04/01/2006, 21h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo