Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/08/2011, 10h55   #1
Invité régulier
 
Inscription : janvier 2011
Messages : 27
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 27
Points : 6
Points : 6
Par défaut Décallage tableau multi dimension.

Bonjour à tous en cette belle matinée.

Je vous expose mon problème que je procrastine depuis un petit moment déjà.

J'ai un tableau multi dimension, ou apparaissent des charges de travail en fonction d'une matière (ligne) et d'une semaine (colonne).
L'affichage du tableau sans les charges se fait parfaitement, mais à partir du moment ou j'insère une charge, une nouvelle colonne viens s'ajouter a mon tableau. (En gros au lieu de remplacer la case de base par la charge, la charge s’insère et décale le tableau).

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
  <?php 
  $i=0;                              
foreach($uvs as $uv){ ?>
    <tr> 
        <td class="info_horaires">
              <a class="info" href="#"><?php echo $uv->UV_LIBELLE_COURT; ?><span class="uv"><?php echo $uv->UV_LIBELLE_LONG; ?></span></a>
            <?php
             for($j=0;$j<$nbSem;$j++) {
                 $z=0;
 
                foreach($charges as $charge){
                        if($charge->CH_SEM_DEBUT == $per->dateUS2WeekNum($dateDebutSem[$j]) and $idUv[$z] == $uv->ID_UV) {
                         ?> <td valign="top" class="day_charge" id="<?php echo $i.$j; ?>"> <?php echo $acroType[$z]; ?> <br /><? echo '('.$charges[$z]->DUREE . 'h:'. $charges[$z]->TEMPS_CHARGE.'h)'; ?></td>
                    <?php        
                    }                   
                $z++;   
                } ?>
                <td valign="top" class="other_day calendar_td" style="vertical-align:middle; font-size: 0.7em; font-style: italic;" id="<?php echo $i.$j; ?>"> <?php echo $uv->UV_CHARGE_SEM . 'H'; ?></td>
             <?php 
             }  ?>
        </td> 
    </tr>
<?php $i++;}  ?>
Et cela deviens gênant car dans le cas ou il y a plusieurs charge de travail pour une même uv, la seconde charge est décalé d'une semaine par rapport à la semaine défini.

Si quelqu'un peut m'éclairer sur la logique a suivre. Merci d'avance )
Azaxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 12h18   #2
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Bonjour,
affiche le code source généré, et tu verras le problème.
Indice : td dans td
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 12h25   #3
Invité régulier
 
Inscription : janvier 2011
Messages : 27
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 27
Points : 6
Points : 6
Code :
1
2
3
4
5
6
7
8
9
10
11
<td class="info_horaires">
<input id="9" type="checkbox" onclick="calcule('14',9, 5)" name="9">
<a class="info" href="#">
ST312GL
<span class="uv">Génie Logiciel</span>
</a>
</td>
<td id="00" class="other_day calendar_td" valign="top" style="vertical-align:middle; font-size: 0.7em; font-style: italic;"> 5H</td>
<td id="01" class="other_day calendar_td" valign="top" style="vertical-align:middle; font-size: 0.7em; font-style: italic;"> 5H</td>
<td id="02" class="day_charge" valign="top">
<td id="02" class="other_day calendar_td" valign="top" style="vertical-align:middle; font-size: 0.7em; font-style: italic;"> 5H</td>
En effet mon td se dédouble quand je rajoute ma charge. Il y a ma charge id="02" class="day_charge". et mon "other day calendar" d'après qui est aussi avec le même id.

Mais le problème est que quand je fais mon if pour savoir si la charge est correctement placé, je ne peux faire un else { afficher jour normal }. Car sinon tout le tableau est multiplié par mon nombre de charge.
Azaxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 12h35   #4
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
A quoi est censé ressembler le tableau "correct" ?
(fait une copie d'écran, ou une image pour expliquer, ce sera plus facile)

On ne sait pas si tu veux ajouter des cellules à la <table> ou juste les données dans la cellule existante.
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 12h41   #5
Invité régulier
 
Inscription : janvier 2011
Messages : 27
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 27
Points : 6
Points : 6


Pour ta question je veux remplacer la cellule par celle avec une charge (donc y insérer des données).

Voila pour le tableau, la charge semaine 41 devrait être semaine 40 normalement.
Et a la fin de mon tableau. (après ma dernière semaine) Vienne s'ajouter une (ou deux si deux charge il y a) cellule en plus dans la ligne.
Azaxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 13h15   #6
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Je ne sais pas si ca répond au problème :
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
<?php
$i=0;
foreach($uvs as $uv){ // pour chaque UV ?>
	<tr>
		<td class="info_horaires">
			<a class="info" href="#"><?php echo $uv->UV_LIBELLE_COURT; ?><span class="uv"><?php echo $uv->UV_LIBELLE_LONG; ?></span></a>
		</td>
<?php
	for($j=0;$j<$nbSem;$j++) { // pour chaque semaine
		$z=0;
		$td_charge = '';
		foreach($charges as $charge){ // pour chaque charge
			if($charge->CH_SEM_DEBUT == $per->dateUS2WeekNum($dateDebutSem[$j]) and $idUv[$z] == $uv->ID_UV) {
				$td_charge .= $acroType[$z].'('.$charges[$z]->DUREE . 'h:'. $charges[$z]->TEMPS_CHARGE.'h)<br />';
			} // fin if
			$z++;
		} // fin foreach charge
		if($td_charge!=''){
?>
		<td valign="top" class="day_charge" id="<?php echo $i.$j; ?>"><?php echo $td_charge; ?></td>
<?php	} else { ?>
		<td valign="top" class="other_day calendar_td" style="vertical-align:middle; font-size: 0.7em; font-style: italic;" id="<?php echo $i.$j; ?>"> <?php echo $uv->UV_CHARGE_SEM . 'H'; ?></td>
<?php	} ?>
<?php
	} // fin foreach semaine
?>
     </tr>
<?php $i++;
} // fin foreach UV
?>
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 13h32   #7
Invité régulier
 
Inscription : janvier 2011
Messages : 27
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 27
Points : 6
Points : 6
calp calp.

J'avais déjà pensé à une logique similaire mais je m'y prenais mal.
Ton code fonctionne parfaitement.
Un grand merci, c'était la seule modification qui me restais a faire sur mon projet et voila chose faite.
Il ne me reste plus qu'a commenter l'ensemble du projet, pour les futures maintenances & améliorations.

Encore un grand merci à toi pour ton aide rapide (et correcte ).
Bonne journée.
Azaxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h55.


 
 
 
 
Partenaires

Hébergement Web