Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Comportamento ciclo

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    residenza
    Svizzera
    Messaggi
    32

    Comportamento ciclo

    ciao a tutti e buon anno.

    Ho una tabella che ad ogni fine di blocco deve cambiare il colore della riga inferiore, come nell'esempio qua sotto:

    Prova 1 31
    Prova 1 21
    Prova 2

    La riga tra 1 e 2 dovrebbe essere di color rosso e cosî di seguito (tra 2 e 3, ...).

    Ho pensato ad una soluzione così:

    codice:
    <?php 
    $x = $variabile_prova
    do {
      if($x == $variabile_prova) 
    {
    $colore = "Black";
    } else {
    $colore = "Red";
    unset($x);
    $x = $variabile_prova;
    }
    
    
    ?>
    <tr>
    <td><?php echo variabile_prova;?></td>
    <td><?php echo variabile_valore;?></td>
    </tr>
    <tr>
    <td bgcolor="<?php echo $colorRow;?>" height="1+></td>
    </tr>
    Ma non mi funziona. COsa sbaglio?

    Ciao e grazie per l'aiuto

    Mauro

  2. #2
    Non è ben chiaro cosa ti occorra.. L'esempio che hai postato è incompleto per cui non è possibile correggerlo.
    Però se ti serve uno script per stampare tabelle a righe di colore alternato, basta una cosa di questo tipo:
    Codice PHP:
    <table>
        <?php
            
    for($i=0;$i<10;$i++){
                
    $bgcolor $i%2==0?'green':'red';
                echo 
    '<tr bgcolor="'.$bgcolor.'">';
                echo 
    '<td>testo della cella '.$i.'</td>';
                echo 
    '</tr>';
            }
        
    ?>
    </table>
    Pensate i programmi a librerie, e innalzate il livello d'astrazione

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2006
    residenza
    Svizzera
    Messaggi
    32
    Ciao, grazie per la risposta. Fare le righe alternate riga per riga non è un problema. Quello che ho bisogno io è che mi cambi il colore della riga solo alla fine di un blocco di righe (che non hanno un numero predefinito di record). In pratica schematizzando sarebbe così:

    Riga 1 - valore 1
    Riga 2 - valore 1
    RIga 3 - valore 1
    Riga rossa
    Riga 4 - valore 2
    Riga rossa
    Riga 5 - valore 3
    Riga 5 - valore 4
    RIga rossa

  4. #4
    Però non sapendo quali sono queste condizioni (dipende dal tuo codice, ne hai postato solo un frammento, il do .. while ad esempio è incompleto), non posso far granchè. Posso postarti questo snippet:
    Codice PHP:
    <table>
        <?php
            $righe_da_cambiare 
    = array(3,4,8);
            for(
    $i=0;$i<10;$i++){
                
    $bgcolor 'green';
                if(
    in_array($i,$righe_da_cambiare)){
                    
    $bgcolor 'red';
                }
                echo 
    '<tr bgcolor="'.$bgcolor.'">';
                echo 
    '<td>testo della cella '.$i.'</td>';
                echo 
    '</tr>';
            }
        
    ?>
    </table>
    che senz'altro è una buona base per personalizzare il tuo. Ho usato una condizione farlocca (un array con il numero di righe, nel mio caso terza quarta e ottava), se la condizione si verifica vado a sostituire la variabile dello sfondo.
    Pensate i programmi a librerie, e innalzate il livello d'astrazione

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Esempio di algoritmo.
    Codice PHP:
    $sav_valore null;
    while (
    condizione) {
       
    $valore valore assegnato da array o altro.
       if (
    $sav_valore === null) {
          
    // per non stampare a video il primo valore
          
    $sav_valore $valore;
       } else {
          if (
    $sav_valore != $valore) {
             
    $sav_valore valore;
             
    // qui metti la riga in rosso
          
    }
       }
       
    // qui la riga normale


    Ultima modifica di badaze; 03-01-2015 a 15:47
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2006
    residenza
    Svizzera
    Messaggi
    32
    Visto che forse non mi sono spiegato bene, ecco il codice in oggetto:

    Codice PHP:
    <table border="0" cellpadding="0" cellspacing="0">
            <tbody>
              <tr>
                <td width="220" height="24" class="testo_normale_space_white">Collaboratore</td>
                <td id="border_gray_verticale"></td>
                <td width="50" align="center" valign="middle" class="testo_normale_center_white">Turno</td>
                <td id="border_gray_verticale"></td>
                <td width="150" class="testo_normale_space_white">Informazioni</td>
              </tr>
              <?php
            $y 
    1;
             do {
                    
    $colorRow1 "";
                             if(
    $y == 0){
                                  
    $colorRow1 "riga_pari";
                             } else {
                                  
    $colorRow1 "riga_dispari";
                     }         
                
    ?>
              <tr>
                <td colspan="6" id="border_gray_orizzontale"></td>
              </tr>
              <tr>
                <?php $explodeColor explode("|"$rs_get_personal_daily['Color']);?>
                <td height="24" id="<?php echo $colorRow1;?>" class="testo_normale_space"><?php echo $rs_get_personal_daily['LastName']." ".$rs_get_personal_daily['FirstName'];?></td>
                <td width="1" bgcolor="#D3D3D3"></td>
                <td <?php if($rs_get_personal_daily['Color'] == NULL) {?>id="<?php echo $colorRow1;?>"<?php } else {?>bgcolor="<?php echo rgb2hex($explodeColor[0],$explodeColor[1],$explodeColor[2]);?>"<?php }?> class="testo_normale_center"><?php echo $rs_get_personal_daily['TaskKey'];?></td>
                <td width="1" bgcolor="#D3D3D3"></td>
                <td class="testo_normale_space" id="<?php echo $colorRow1;?>"><?php echo $rs_get_personal_daily['TaskName'];?></td>
              </tr>
              <?php
            $y
    ++;
             } while (
    $rs_get_personal_daily sqlsrv_fetch_array($sql_get_personal_daily))?>
            </tbody>
          </table>
    In pratica quando cambia il valore di $rs_get_personal_daily['TaskKey'] deve comparire una riga rossa di separazione.

    Spero che sono riuscito ad essere più chiaro

    Grazie per le risposte che mi avete già dato

  7. #7
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    prova così
    Codice PHP:
    <table border="0" cellpadding="0" cellspacing="0">
            <tbody>
              <tr>
                <td width="220" height="24" class="testo_normale_space_white">Collaboratore</td>
                <td id="border_gray_verticale"></td>
                <td width="50" align="center" valign="middle" class="testo_normale_center_white">Turno</td>
                <td id="border_gray_verticale"></td>
                <td width="150" class="testo_normale_space_white">Informazioni</td>
              </tr>
              <?php
                $y 
    1;
                
    // nuova variabile di controllo
                
    $task_key "";
                do {
                    
    $colorRow1 "";
                    if(
    $y == 0) {
                        
    $colorRow1 "riga_pari";
                    } else {
                        
    $colorRow1 "riga_dispari";
                    }
                    
    // controlli il valore della variabile
                    
    if ($task_key != "" || $task_key != rs_get_personal_daily['TaskKey']) {
                        
    // stampi la riga rossa
                    
    }    
                
    ?>
              <tr>
                <td colspan="6" id="border_gray_orizzontale"></td>
              </tr>
              <tr>
                <?php $explodeColor explode("|"$rs_get_personal_daily['Color']);?>
                <td height="24" id="<?php echo $colorRow1;?>" class="testo_normale_space"><?php echo $rs_get_personal_daily['LastName']." ".$rs_get_personal_daily['FirstName'];?></td>
                <td width="1" bgcolor="#D3D3D3"></td>
                <td <?php if($rs_get_personal_daily['Color'] == NULL) {?>id="<?php echo $colorRow1;?>"<?php } else {?>bgcolor="<?php echo rgb2hex($explodeColor[0],$explodeColor[1],$explodeColor[2]);?>"<?php }?> class="testo_normale_center"><?php echo $rs_get_personal_daily['TaskKey'];?></td>
                <td width="1" bgcolor="#D3D3D3"></td>
                <td class="testo_normale_space" id="<?php echo $colorRow1;?>"><?php echo $rs_get_personal_daily['TaskName'];?></td>
              </tr>
              <?php
            $y
    ++;
            
    // aggiorni la variabile
            
    $task_key rs_get_personal_daily['TaskKey'];
             } while (
    $rs_get_personal_daily sqlsrv_fetch_array($sql_get_personal_daily))?>
            </tbody>
          </table>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.