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

Langage PHP Discussion :

Décallage tableau multi dimension. [PHP 5.2]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 34
    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 : 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
      <?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 )

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    affiche le code source généré, et tu verras le problème.
    Indice : td dans td

  3. #3
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 34
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  4. #4
    Invité
    Invité(e)
    Par défaut
    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.

  5. #5
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 34
    Par défaut


    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.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Je ne sais pas si ca répond au problème :
    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
    <?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
    ?>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tableaux] recherche dans un tableau multi dimension
    Par kagura dans le forum Langage
    Réponses: 1
    Dernier message: 18/07/2007, 14h27
  2. [Tableaux] Tri d'un tableau multi-dimensions
    Par lodan dans le forum Langage
    Réponses: 6
    Dernier message: 05/12/2006, 10h08
  3. Réponses: 4
    Dernier message: 29/11/2006, 12h00
  4. Réponses: 3
    Dernier message: 06/10/2006, 15h46
  5. [Tableaux] Différence tableau multi dimension
    Par rdams dans le forum Langage
    Réponses: 3
    Dernier message: 20/04/2006, 11h34

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