• User

    Colorare i div in base ad una scadenza

    Ciao !
    avrei bisogno di colorare i div in base all'avvicinarsi di una data prefissata rispetto alla data attuale.

    es.

    div verde se alla data mancano più di 30 giorni
    div giallo se alla data mancano da 30 a 0 giorni
    div rosso se la data è stata superata.

    i valori date li ho impostati su db Mysql e messi su tabella come da codice allegato:

    <?php	include("../models/config.php");
    	$result = mysql_query("SELECT * FROM Liste, Users ORDER BY dataclose DESC ")
            or die(mysql_error());  
            echo "<table class=\"table table-striped\">";
            echo "<thead> <th>ID</th> <th>Aperta</th> <th>Data apertura</th> <th>Data chiusura</th> <th></th> </thead>";
            while($row = mysql_fetch_array( $result )) {
                    echo "<tr>";
                    echo '<td>' . $row['id'] . '</td>';
    		$d=$row['apertura'] ;
    		if ($d=="no") 
    		echo '<td>Lista Chiusa</td>';
                    else echo '<td>Lista Aperta</td>';
                    echo '<td>' . $row['dataopen'] . '</td>';
                    echo '<td>' . $row['dataclose'] . '</td>';
    		if ($d=="no") 
    		echo '<td><p>La lista è chiusa</p></td>';
    		else echo '<td><a href="nuova.php?id=' . $row['id'] . '&User_ID=' . $row['User_ID'] . '" class="btn btn-primary">Ordina Ora !</a></td>';
    		echo "</tr>"; 
            } 
            echo "</table>";
    ?>
    

    Un aiutino ?

    Grazie !


  • User

    potresti creare delle class nel css diverse per ogni colore, recuperare la data dal database, e dare la giusta class al div che devi colorare, oaddirittura mettere il colore dichiarandolo direttamente nella pagina a seconda della data
    tipo ```

    <div style "background-color:#FFF;"></div>


  • User

    Ciao !
    grazie della risposta.
    ho scritto questo codice che però mi vale per un confronto per volta...

    php:

    <? $sql = "SELECT dataclose FROM Liste";
    $result = mysql_query($sql);
    if (!$result) {
        echo "Could not successfully run query ($sql) from DB: " . mysql_error();
        exit;
    }
    $row = mysql_fetch_assoc($result);
    $sMySqlDate = $row['dataclose'];
    mysql_free_result($result);
    $iNow = time();
    $iDeadline = strtotime($sMySqlDate);
    $iAfter = strtotime('+30 day', $iDeadline);
    $iBefore = strtotime('-30 days', $iDeadline);
    $sClass = ($iNow >= $iAfter ? 'after' : ($iNow < $iBefore ? 'before' : 'current'));
    echo '<div class="' . $sClass . '">blablabla</div>';
    ?>
    
    

    Questo il css:

    <style>.before { color: #00ff00; } 
    .current { color: #0000ff; } 
    .after { color: #FF0000; }
    </style>
    
    

    come posso adattarlo per inserirlo nel codice che ho postato nel primo messaggio ?
    ovvero vorrei che nella tabella che mi mostra tutte le liste mi colori di rosso quelle scadute, in verde quelle valide e in giallo quelle che scadono tra 30 giorni...


  • User Attivo

    Ma tu vuoi colorare lo sfondo dei div o i caratteri?
    Perchè il css che hai preparato colora i caratteri... TUTTI i caratteri nel div...