Partage
  • Partager sur Facebook
  • Partager sur Twitter

code java ne fonctionne plus une fois integrer dans mon code

Sujet résolu
    29 novembre 2011 à 12:46:51

    Bonjour à tous.
    Tout d'abord merci pour ce site qui est vraiment génial et qui m'a permis de me trouver une nouvelle passion, coder!!!!!!
    Je suis sur un projet de calcul d'heures... Le site est fonctionnel, cependant je voudrais améliorer une partie...
    J'explique :
    J'ai une base de données avec plusieurs tables
    -une qui regroupe les conducteurs
    -une par conducteur dans laquelle (par l'intermédiaire d'un formulaire) les conducteurs rentrent leur heures.

    Je suis en train de faire une page de récapitulation pour que l'admin (mon papa) puisse répartir les heures sups en heures à 25% et à 50%.
    la création de la page avec un tableau qui par ligne me ressort les heures effectués dans le mois et le calcul du nombre d'heures sups totale .....est ok.

    Je voudrais que la saisis du nombre d'heures a 25% et à 50% influe en temps réel sur les heures restantes. J'ai donc opté pour une petite fonction java.
    J'ai donc intégré des champs dans les cellules pour sélectionner le nombre que je veux passer à 25% et à 50%,des champs cachés ou je rentre la valeur des heures sups totales et un champ qui devrait me sortir les heures restantes ....

    Ma fonction java fonctionne seule (sur une page seule) mais quand je l'integre a mon code php, ca ne marche pas...

    Ce code fonctionne si on entre des valeurs pour les differrentes variables
    <script language="javascript"> 
    
    function calcul_h_supp_restante(name1,name2,name3,name4)
    {
    document.all[name1].value=document.all[name2].value-document.all[name3].value-document.all[name4].value;
    
    }
     
    </script>
    <!--
    $donnees['identification'] donné par une recherche dans ma table de données qui contient les chauffeurs
    $total_heure_sup_lettre donné par un calcul 
    $total_heure_sup_en_centieme donné par un calcul
    Ces valeurs sont correct car je les fait afficher dans mon tableau
    -->
    
    <table>
    <td><input type="text" name="total_heure_sup_en_centieme_<?php echo $donnees['identification'];?>" value="<?php echo $total_heure_sup_en_centieme;?>"/><?php echo''.$total_heure_sup_en_centieme.'<br />soit<br />'.$total_heure_sup_lettre.'';?></td>
    <td><input type="text" maxlength=6 size=2 name="nb_25_<?php echo $donnees['identification'];?>" onKeyup="calcul_h_supp_restante('h_sup_restante_<?php echo $donnees['identification'];?>','total_heure_sup_en_centieme_<?php echo $donnees['identification'];?>','nb_25_<?php echo $donnees['identification'];?>','nb_50_<?php echo $donnees['identification'];?>')"/></td>
    <td><input type="text" maxlength=6 size=2 name="nb_50_<?php echo $donnees['identification'];?>" onKeyup="calcul_h_supp_restante('h_sup_restante_<?php echo $donnees['identification'];?>','total_heure_sup_en_centieme_<?php echo $donnees['identification'];?>','nb_25_<?php echo $donnees['identification'];?>','nb_50_<?php echo $donnees['identification'];?>')"/></td>
    <td><input type="text" name="h_sup_restante_<?php echo $donnees['identification'];?>"/></td>
    </table>
    


    Et Je suis désolé mais voici le code complet de la page avec le tableau qui déconne !!!!
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    	
    	<head>
    		<title>-Traitement des heures- </title>
    		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    		
    		<link rel="shortcut icon" href="images/icone_16.ico" />
    		<link rel="icon" type="image/x-icon" href="images/icone_16.ico" />
    		<link rel="icon" type="image/png" href="images/icone/icone_32.png" />
    		
    		<link rel="stylesheet" media="screen" type="text/css" title="Style" href="style1.css" />
    
    <script language="javascript"> 
    
    function calcul_h_supp_restante(name1,name2,name3,name4)
    {
    document.all[name1].value=document.all[name2].value-document.all[name3].value-document.all[name4].value;
    
    }
     
    </script>
    
    	</head>
    
    
    	<body id="admin">
    		<div id="en_tete_admin">
    		</div>
    <?php
    		include("menu_admin.php");
    
    ?>
    
    		<div id="corps">
    			<div class="centre">
    				<form enctype="multipart/form-data" method="post" action="tableau2.php" name="frm">
    
    					<fieldset>
    						<h3>- Choisir le mois à éditer -</h3>						
    							<p class= "sans indent">
    								Mois (MM-AAAA): <input type="text" maxlength=2 size=2 name="mois" onkeyup="if ( frm.mois.value.length == 2 ) frm.annee.focus();"/> - <input type="text" maxlength=4 size=4 value="2011" name="annee"/><br />			
    							</p>
    					</fieldset>
    			
    					<div>
    						<input type= "submit" value="Je confirme"/>
    						<br />								
    					</div>
    				</form>
    			</div>
    <?php	
    			if((isset($_POST['mois']) AND $_POST['mois']!='' AND isset($_POST['annee']) AND $_POST['annee']!='')OR(isset($_GET['mois']) AND $_GET['mois']!='' AND isset($_GET['annee']) AND $_GET['annee']!=''))
    			{
    							$timestamp_debut_mois_demande=mktime(0,0,0,$mois,1,$annee);
    							$timestamp_fin_mois_demande=mktime(0,0,-1,$mois+1,1,$annee);
    							setlocale(LC_TIME, "fr_FR.utf8", "fr_FR@euro", "fr", "FR", "fra_fra", "fra");
    							$mois_en_demande_lettre=strftime("%B %Y", $timestamp_debut_mois_demande);
    							$mois_en_demande_lettre=ucfirst($mois_en_demande_lettre);
    ?>			
    			<div>
    				
    					<h2 class="centre"><span class="transparent">Editer les heures du mois de <?php echo $mois_en_demande_lettre;?>.</span></h2>
    							<div>
    								<form enctype="multipart/form-data" method="post" action="traitement_payes.php" name="frm">
    									<table>
    										<caption class="transparent"><?php echo ''.$mois_en_demande_lettre.''?></caption>
    										<tr>
    											<th rowspan="2" class="cell_titre">Chauffeur</th>
    											<th colspan="6" class="cell_titre">Heures</th>
    											<th colspan="3" class="cell_titre">Heures supp du mois</th>
    											<th rowspan="2" class="cell_titre">Congés pris</th>
    											<th colspan="3" class="cell_titre">Prime(s) de week-end et jour(s) férié(s)</th>
    											<th rowspan="2" class="cell_titre">Prime mensuelle</th>
    											<th rowspan="2" class="cell_titre">Prime exeptionelle</th>
    											<th rowspan="2" class="cell_titre">Retenues diverses</th>
    											<th rowspan="2" class="cell_titre">Arrêt maladie</th>
    											<th rowspan="2" class="cell_titre">Observation(s)</th>
    										</tr>
    										<tr>
    											<th class="sous_div">Travaillées</th>
    											<th class="sous_div">Nb Rtt</th>
    											<th class="sous_div">Heure(s) Rtt</th>
    											<th class="sous_div">Total</th>
    											<th class="sous_div">Norm</th>
    											<th class="sous_div">Supp</th>
    											<th class="sous_div">25%</th>
    											<th class="sous_div">50%</th>
    											<th class="sous_div">Restant</th>
    											<th class="sous_div">Nombre</th>
    											<th class="sous_div">Taux</th>
    											<th class="sous_div">Total</th>
    											
    										</tr>
    			<?php			
    							$_POST['mois']=$mois;
    							$_POST['annee']=$annee;
    
    							mysql_connect($sql["serveur"],$sql["login"],$sql["pass"])or die ("impossible de se connecter, réessayé plus tard");
    							mysql_select_db($sql["base"])or die ("erreur de connexion base");
    							$requete=mysql_query('SELECT identification FROM info_conducteur WHERE identification!="Curto_Philippe"')OR die('Erreur de la requête MySQL id');
    							mysql_close();
    							while($donnees= mysql_fetch_assoc($requete))
    							{
    								
    								$total_travaille_mois_demande=0;
    								$employe2=$donnees['identification'];
    								$donnees_mois=array();
    								$_SESSION[''.$employe2.'']=array();
    
    								
    								mysql_connect($sql["serveur"],$sql["login"],$sql["pass"])or die ("impossible de se connecter, réessayé plus tard");
    								mysql_select_db($sql["base"])or die ("erreur de connexion base");
    								$requete_jour=mysql_query('SELECT * FROM heure_'.$donnees['identification'].' ORDER BY date_timestamp ')OR die('Erreur de la requête MySQL la base de données a votre nom n\'a pas été crée.');
    								mysql_close();
    								//boucle de recherche		
    								$i=0;
    								$nb_rtt=0;
    								$nb_jour_we=0;
    								while($donnees_jour = mysql_fetch_assoc($requete_jour))
    								{							
    									if($timestamp_debut_mois_demande<=$donnees_jour['date_timestamp'] AND $donnees_jour['date_timestamp']<=$timestamp_fin_mois_demande AND $donnees_jour['prise_service']!='Rtt' AND $donnees_jour['prise_service']!='Repos'AND $donnees_jour['prise_service']!='conges' AND $donnees_jour['prise_service']!='sans_sold'AND $donnees_jour['prise_service']!='arret')
    									{	
    										setlocale(LC_TIME, "fr_FR.utf8", "fr_FR@euro", "fr", "FR", "fra_fra", "fra");
    										$joursemaine=strftime("%A", $donnees_jour['date_timestamp']);
    										$total_travaille_mois_demande=$total_travaille_mois_demande+$donnees_jour['tps_travail_timestamp'];
    										
    										if($joursemaine=='samedi' OR $joursemaine=='dimanche')
    										{
    											$nb_jour_we=$nb_jour_we+1;
    										}
    									}						
    										
    									elseif($timestamp_debut_mois_demande<=$donnees_jour['date_timestamp'] AND $donnees_jour['date_timestamp']<=$timestamp_fin_mois_demande AND $donnees_jour['prise_service']=='Rtt' )
    									{
    										$nb_rtt=$nb_rtt+1;
    									}
    										
    										
    								}							
    									
    									$tot_prime_we=$nb_jour_we*15.925;
    									
    									$tot_rtt=$nb_rtt*7*3600;
    									$nb_heure_rtt=$nb_rtt*7;
    									$total_travaille_mois_demande_en_centieme=$total_travaille_mois_demande/3600;
    									$total_travaille_mois_demande_en_centieme=round($total_travaille_mois_demande_en_centieme,2);
    									$tot_cent=$total_travaille_mois_demande_en_centieme+$nb_heure_rtt;
    									$total_travaille_mois_demande_arrondi=$total_travaille_mois_demande_en_centieme*3600;
    									$reste_min=($total_travaille_mois_demande%3600)/60;
    									$reste_min=round($reste_min,0);
    									$reste_min=str_pad($reste_min, 2, 0, STR_PAD_LEFT);
    									$temps_heure=floor($total_travaille_mois_demande_en_centieme);
    									$temps_heure_avec_rtt=floor($tot_cent);
    									$total_travaille_mois_demande_lettre=''.$temps_heure.'h'.$reste_min.'min';
    									$total_heure_sup=$total_travaille_mois_demande+$tot_rtt-546012;
    									$tot_lettre=''.$temps_heure_avec_rtt.'h'.$reste_min.'min';
    
    									
    									if($total_heure_sup<=0)
    									{
    										$total_heure_norm_en_centieme=$tot_cent;									
    										$total_heure_sup_lettre='0h00min';
    										$total_heure_sup=0;
    										$total_heure_sup_en_centieme=0;
    										
    									}
    									else
    									{
    									$total_heure_norm_en_centieme=151.67;
    									
    									$total_heure_sup_en_centieme=$total_heure_sup/3600;
    									$total_heure_sup_en_centieme=round($total_heure_sup_en_centieme,2);
    									$total_heure_sup_arrondi=$total_heure_sup_en_centieme*3600;
    									$reste_min=($total_heure_sup_arrondi%3600)/60;
    									$reste_min=round($reste_min,0);
    									$reste_min=str_pad($reste_min, 2, 0, STR_PAD_LEFT);			
    									$temps_heure=floor($total_heure_sup_en_centieme);
    									$total_heure_sup_lettre=''.$temps_heure.'h'.$reste_min.'min';
    									}							
    
    									
    									$jours_manquant=0;
    									
    									mysql_connect($sql["serveur"],$sql["login"],$sql["pass"])or die ("impossible de se connecter, réessayé plus tard");
    									mysql_select_db($sql["base"])or die ("erreur de connexion base");
    									$requete_jour_manquant=mysql_query('SELECT * FROM heure_'.$donnees['identification'].' ORDER BY date_timestamp ')OR die('Erreur de la requête MySQL la base de données a votre nom n\'a pas été crée.');
    									mysql_close();
    									$nb=1;
    									
    									$nb_jour_mois=date('t',$timestamp_debut_mois_demande);
    									unset($timestamp_saisis);
    									$timestamp_saisis=array();
    									for($nb=1;$nb<=$nb_jour_mois;$nb++)
    									{
    									$nb=str_pad($nb, 2, 0, STR_PAD_LEFT);
    									$timestamp_saisis[$nb]='vide';
    									}
    								
    									while($donnees_jour_manquant = mysql_fetch_assoc($requete_jour_manquant))
    									{	
    										if($timestamp_debut_mois_demande<=$donnees_jour_manquant['date_timestamp'] AND $donnees_jour_manquant['date_timestamp']<=$timestamp_fin_mois_demande)
    										{	
    											$i=$donnees_jour_manquant['date_timestamp'];
    											$d=date("d",$i);
    											$timestamp_saisis[$d]='ok';		
    										}
    									}
    									$nb_jours_manquant=0;
    									foreach($timestamp_saisis as $cle=>$element)
    									{
    										if($element=='vide')
    										{
    										$nb_jours_manquant=$nb_jours_manquant+1;
    										$jours_manquant=''.$jours_manquant.' '.$cle.'';
    										}
    										else
    										{
    										$jours_manquant=$jours_manquant;
    										$nb_jours_manquant=$nb_jours_manquant;
    										}
    									}							
    									if($nb_jours_manquant==0)
    									{
    										$mess='<span class="coul_vert">Saisie à jour</span>';
    									}
    									else
    									{
    										$mess='<span class="coul_rouge">Il manque '.$nb_jours_manquant.' jour(s).</span>';
    									}
    								
    
    								
    								
    																		
    				
    			?>
    			
    								
    										
    					
    										<tr>
    											<td><?php echo''.$donnees['identification'].'<br />'.$mess.'<br /><li><a href="visu_developpe_mois_demande.php?chauff='.$donnees['identification'].'&mois='.$mois.'&annee='.$annee.'" onclick="window.open(this.href); return false;">Voir détail.</a></li>';?></td>
    											<td><?php echo''.$total_travaille_mois_demande_en_centieme.' soit '.$total_travaille_mois_demande_lettre.'';?></td>
    											<td><?php echo $nb_rtt;?></td>
    											<td><?php echo $nb_heure_rtt;?></td>
    											<td><?php echo ''.$tot_cent.' soit '.$tot_lettre.''?></td>
    											
    											<td><input type="text" maxlength=6 size=6 name="heure_norm_<?php echo $donnees['identification'];?>" value="<?php echo $total_heure_norm_en_centieme;?>"/></td>
    											<td><input type="text" name="total_heure_sup_en_centieme_<?php echo $donnees['identification'];?>" value="<?php echo $total_heure_sup_en_centieme;?>"/><?php echo''.$total_heure_sup_en_centieme.'<br />soit<br />'.$total_heure_sup_lettre.'';?></td>
    											<td><input type="text" maxlength=6 size=2 name="nb_25_<?php echo $donnees['identification'];?>" onKeyup="calcul_h_supp_restante('h_sup_restante_<?php echo $donnees['identification'];?>','total_heure_sup_en_centieme_<?php echo $donnees['identification'];?>','nb_25_<?php echo $donnees['identification'];?>','nb_50_<?php echo $donnees['identification'];?>')"/></td>
    											<td><input type="text" maxlength=6 size=2 name="nb_50_<?php echo $donnees['identification'];?>" onKeyup="calcul_h_supp_restante('h_sup_restante_<?php echo $donnees['identification'];?>','total_heure_sup_en_centieme_<?php echo $donnees['identification'];?>','nb_25_<?php echo $donnees['identification'];?>','nb_50_<?php echo $donnees['identification'];?>')"/></td>
    											<td><input type="text" name="h_sup_restante_<?php echo $donnees['identification'];?>"/></td>
    											<td><input type="text" maxlength=255 name="date_conges_<?php echo $donnees['identification'];?>"/></td>
    											<td><input type="text" maxlength=2 size=2 name="nb_astreinte_<?php echo $donnees['identification'];?>" value="<?php echo''.$nb_jour_we.'';?>"/></td>
    											<td><input type="text" maxlength=4 size=4 name="taux_astreinte_<?php echo $donnees['identification'];?>" value="15.925"/></td>
    											<td><?php echo $tot_prime_we;?></td>
    											<td><input type="text" maxlength=4 size=4 name="prime_mens_<?php echo $donnees['identification'];?>" value="60"/></td>
    											<td><input type="text" maxlength=4 size=4 name="prime_exep_<?php echo $donnees['identification'];?>" value="0"/></td>
    											<td><input type="text" maxlength=4 size=4 name="retenues_<?php echo $donnees['identification'];?>" value="0"/></td>
    											<td><input type="text" maxlength=255 name="date_arrêt_<?php echo $donnees['identification'];?>"/></td>
    											<td><textarea cols="19" rows="2" name="observation_<?php echo $donnees['identification'];?>"></textarea></td>
    										</tr>
    
    	<?php
    							$donnees_mois['timestamp_debut_mois_demande']=$timestamp_debut_mois_demande;
    							$donnees_mois['mois_en_demande_lettre']=$mois_en_demande_lettre;
    							$donnees_mois['heure_travaillees']=$total_travaille_mois_demande_lettre;
    							$donnees_mois['heure_travaillees_en_centieme']=$total_travaille_mois_demande_en_centieme;
    							$donnees_mois['nb_rtt']=$nb_rtt;
    							$donnees_mois['heure_rtt']=$nb_heure_rtt;
    							$donnees_mois['heure_tot_cent']=$tot_cent;
    							$donnees_mois['heure_tot']=$tot_lettre;
    							/*$donnees_mois['']=
    							$donnees_mois['']=*/
    							$donnees_mois['total_heure_sup_en_centieme']=$total_heure_sup_en_centieme;
    							$donnees_mois['heure_supp_restantes']=$total_heure_sup_en_centieme;
    							$donnees_mois['nb_jours_manquant']=$nb_jours_manquant;
    							$_SESSION[''.$employe2.'']=$donnees_mois;
    							
    							}
    	?>
    									</table>
    									<div>
    										<input type= "submit" value="Je confirme"/>
    										<br />								
    									</div>
    								</form>
    							</div>
    			</div>
    <?php
    			}
    ?>
    		</div>
    		<div>
    			<a href="testvaleur.php">lien</a>
    			<a href="pagetest.php">lien md5</a>
    		</div>
    	</body>
    </html>
    


    Voilà ca fait un bon moment que je tourne ca dans tous les sens et je comprend pas pourquoi ca marche pas... ca doit peut etre venir des variable qui sont créer a chaque tours de la boucle de création de la ligne du tableau mais je vois pas...

    Si quelqu'un à le courage de se plonger la dedans ..... Chapeau !!!
    En tout cas merci d'avance...
    • Partager sur Facebook
    • Partager sur Twitter
      29 novembre 2011 à 13:10:25

      le seul code java est une fonction déclarer en haut ....
      • Partager sur Facebook
      • Partager sur Twitter
        29 novembre 2011 à 13:23:59

        Ce n'est pas du Java mais du JavaScript (JS n'a rien à voir avec Java à part la ressemblance syntaxique).

        Tu es sûr que les noms des champs sont les mêmes dans les 2 codes (celui qui bug et celui qui marche) ?

        Connais-tu firebug qui peut te permettre en autre de débuger du code javascript ?
        • Partager sur Facebook
        • Partager sur Twitter
          29 novembre 2011 à 13:30:03

          Ok désolé pour l'erreur sur java ou JavaScript oups
          Pour les nom des champs j'ai essayé les pages et j'ai fait afficher le code source de la page pour contrôler qu'il me créait bien les noms voulus...c'est le cas. Sinon firebug j'en ai entendu parler, je vais tester... De toute façon je dois pas être bien loin mais j'ai le cerveau en confiotte à force!!!
          je pense que c'est un problème avec ma variable qui doit rentrer dans name2... Je vous tiens au courant de l'évolution... Et merci d'avoir jeter un œil ça fait toujours plaisir de pas se sentir seul face à un problème....

          ok c'est bon, j'ai changé quelque truc dont la fonction, j'ai l impression que le problème venait des guillemets qui s'accumulaient en chargeant une variable qui avait elle même une variable dedans...

          function calcul_h_supp_restante(name1,name2,name3,name4)
          {
          document.getElementById(name1).value=document.getElementById(name2).value-document.getElementById(name3).value-document.getElementById(name4).value;
          
          }
          


          et j'ai réaffecté des 'id' à chaque champs
          • Partager sur Facebook
          • Partager sur Twitter

          code java ne fonctionne plus une fois integrer dans mon code

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown