Visualizzazione risultati 1 fino 19 di 19

Discussione: Cambiare colore parametro dinamico (if > o <)

  1. #1
    Guest

    Unhappy Cambiare colore parametro dinamico (if > o <)

    Ciao ragazzi. Chiedo venia se il titolo del topic non fosse sufficientemente chiaro ma ho un problema che non riesco a risolvere e gradirei un vostro aiuto.

    Ho un sito meteo in php dove chiaramente i parametri di Temperatura, Umidità ecc ecc variano in base a quanto registrato (ogni 40 sec) dalla stazione.

    Nella fattispecie utilizzo un template già organizzato con tabelle dove vengono riportati i valori sopra indicati.

    La mia necessità è poter variare il colore ad esempio del parametro "temperatura" se questi superi i TOT gradi centigradi (mostrandolo magari in ROSSO - se maggiore di 20,0° e/o BLUE se minore di 10,0°). Lo stesso vale per altri parametri quali umidità, raffiche ecc ecc ma chiaramente il procedimento è unico.

    In particolare il codice di riferimento temperatura é il seguente

    Codice PHP:
    <?php echo '<td>'.$now_temp.'</td>
    <td>'
    .$temp.' '.$tempunit.'</td><td>'.$Tr_apptemp.'</td><td>'.$apptemp.' '.$tempunit.'</td>'; ?>
    </tr><tr class="td_data">
    Dove $now_temp evidenzia semplicemente la scritta "TEMPERATURA", mentre $temp è il parametro di richiamo dei valori dinamici letti dalla stazione.

    Devo far in modo che se $temp è > di (ipotesi) 20, la cifra compaia ROSSA. Se $temp fosse invece < di (ipotesi) 10, la cifra compaia BLUE. Tra 10 e 20 mi va bene il colore classico.

    Spero di essermi spiegato e, nel contempo, che qualcuno possa risolvermi il problema

    In attesa,

    Saluti
    Stefano

  2. #2
    Guest

    Predefinito

    Codice PHP:

    $classetemp
    = 'normale';

    if(
    $temp > 20)
    {
    $calssetemp = 'caldo';
    }
    else if(
    $temp < 10)
    {
    $classetemp = 'freddo';
    }

    <
    td class="'.$classetemp.'">'.$temp.' '.$tempunit.'</td>
    e da qualche parte nel tuo foglio di stile imposti come vuoi che vengano visualizzati i vari casi (caldo, freddo, neutro)

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da simpleticket Visualizza messaggio

    e da qualche parte nel tuo foglio di stile imposti come vuoi che vengano visualizzati i vari casi (caldo, freddo, neutro)
    Grazie in primis per la tua celere risposta! Il punto è che non sono molto pratico e non saprei come impostare nel *.css i vari casi do un occhiata a quest`ultimo e vedo cosa posso tirare fuori...

    -

    Spero tu non mi prenda in giro :D Ho provato a buttar giù questo :

    /********************************/
    /* COLORI METEO */
    /********************************/
    #classtemp caldo {color:red;}
    #classtemp freddo {color:blue;}
    /*//END OF COLORI METEO*/

    Chiaramente non funziona e sicuramente sarà sbagliato :D
    Ultima modifica di darkwolf : 25-01-2013 alle ore 17.49.57

  4. #4
    Guest

    Predefinito

    con # indichi l'elemento avente ID dato, per indicare la classe devi usare il punto.
    e poi classetemp è il nome della variabile php, non devi scriverla nel css.

    Così come hai scritto tu, stati cercando l'elemento "caldo" dentro l'elemento avente ID classetemp.

    Scrivi

    Codice:
    .caldo {color:red;}
    .freddo {color:blue;}

  5. #5
    Guest

    Predefinito

    Eh ma anche modificando così il risultato non cambia

    /********************************/
    /* COLORI METEO */
    /********************************/
    .caldo {color:red;}
    .freddo {color:blue;]
    /*//END OF COLORI METEO*/
    :( Premesso che ho incollato nel php il codice iniziale che mi hai scritto tu

  6. #6
    Guest

    Predefinito

    Posta una pagina in cui è possibile vedere quello che hai fatto

  7. #7
    Guest

    Predefinito

    Allora, gli sviluppatori del template che utilizzo suggeriscono questo codice

    Codice PHP:
    <?php
    $temp
    = <#temp>; // Cumulus webtag for exterior temperature.
    if ($temp > 20) // If temperature above 20°C
    }
    $temp_color = '#FF0000'; // Write in Red.
    {
    elseif (
    $temp < 0) // If temperature below zero
    }
    $temp_color = '#0000FF'; // Write with Blue.
    {
    else
    // If temperature above 0, but below 20.
    }
    $temp_color = '#FFFFFF'; // Write in White.

    ?>
    Ma in verità così facendo la pagina mi riporta Parse error: syntax error, unexpected '{', expecting ',' or ';' in /membri/czmeteo/index_txt.php on line 22

    Invece, inserendo nello style.css
    Codice:
    .caldo {color:red;}
    .freddo {color:blue;}
    e nell'index questo

    Codice PHP:
    <?php
    $tpl_version
    = "1.0";
    if (isset(
    $_GET['ver'])) {
    echo
    $tpl_version;
    exit;
    }
    ?>
    <!-- WEATHER DATA BEGIN -->
    <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="Condizioni Attuali">
    <caption style="text-align: center;"><strong><?php echo $Tr_CondAt.' '.$time; ?></strong></caption>
    <tr>
    <td colspan="5" class="tableseparator"><strong><?php echo $TT_TempAndHum; ?></strong></td>
    </tr><tr class="td_data">
    <?php echo '<td>'.$now_temp.'</td>


    <td>
    $classetemp = '
    normale';

    if($temp > 20)
    {
    $calssetemp = '
    caldo';
    }
    else if($temp < 10)
    {
    $classetemp = '
    freddo';
    }

    <td class="'
    .$classetemp.'">'.$temp.' '.$tempunit.'</td>


    <td>'
    .$temp.' '.$tempunit.'</td><td>'.$Tr_apptemp.'</td><td>'.$apptemp.' '.$tempunit.'</td>'; ?>
    </tr><tr class="td_data">
    <?php echo '<td>'.$Tr_temptrend.'</td><td>'.$temptrend.' '.$tempunit.'</td><td>'.$Tr_wetbulb.'</td><td>'.$wetbulb.' '.$tempunit.'</td>'; ?>
    </tr>
    La pagina mi dice
    Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /membri/czmeteo/index_txt.php on line 18


    Sono un inchiappato lo so...La pagina dove gli autori suggeriscono come fare la trovi qui http://weatherbyyou.com/diy_php_and_cumulus.php

  8. #8
    Guest

    Predefinito

    In questa riga

    Codice PHP:
    <?php echo '<td>'.$now_temp.'</td>
    manca la chiusura.

    Prova a sostituire così

    Codice PHP:
    </tr><tr class="td_data">
    <?php echo '<td>'.$now_temp.'</td>'; ?>


    <td>
    <?php
    $classetemp
    = 'normale';

  9. #9
    Guest

    Predefinito

    nisba...

    L`index originale (dove vengono visualizzati i dati meteorologici) è questa :

    Codice PHP:
    <?php
    $tpl_version
    = "1.0";
    if (isset(
    $_GET['ver'])) {
    echo
    $tpl_version;
    exit;
    }
    ?>
    <!-- WEATHER DATA BEGIN -->
    <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="Observations actuelles">
    <caption style="text-align: center;"><strong><?php echo $Tr_CondAt.' '.$time; ?></strong></caption>
    <tr>
    <td colspan="5" class="tableseparator"><?php echo $TT_TempAndHum; ?></td>
    </tr><tr class="td_data">
    <?php echo '<td>'.$now_temp.'</td><td>'.$temp.' '.$tempunit.'</td><td>'.$Tr_apptemp.'</td><td>'.$apptemp.' '.$tempunit.'</td>'; ?>
    </tr><tr class="td_data">
    <?php echo '<td>'.$Tr_temptrend.'</td><td>'.$temptrend.' '.$tempunit.'</td><td>'.$Tr_wetbulb.'</td><td>'.$wetbulb.' '.$tempunit.'</td>'; ?>
    </tr>
    <!-- Humidex for summer - Just remove these comments
    <tr class="td_data">
    <?php echo '<td>'.$Tr_humidex.'</td><td>'.$humidex.$tempunit.'</td><td>&nbsp;</td><td>&nbsp;</td>'; ?>
    </tr>
    -->
    <tr class="td_data">
    <?php echo '<td>'.$Tr_avgtemp.'</td><td>'.$avgtemp.' '.$tempunit.'</td><td>'.$now_hum.'</td><td>'.$hum.'%</td>'; ?>
    <tr class="td_data">
    <?php echo '<td>'.$Tr_dew.'</td><td>'.$dew.' '.$tempunit.'</td><td>'.$Tr_cloudbase.'</td><td>'.$cloudbasevalue.' '.$cloudbaseunit.'</td>'; ?>
    </tr><tr class="td_data">
    <?php echo '<td>'.$Tr_wchill.'</td><td>'.$wchill.' '.$tempunit.'</td><td>'.$Tr_inhum.'</td><td>'.$inhum.'%</td>'; ?>
    </tr><tr class="td_data">
    <?php echo '<td>'.$Tr_intemp.'</td><td>'.$intemp.' '.$tempunit.'</td><td>'.$Tr_UV.'</td><td>'.$UV.'</td>'; ?>
    </tr><tr class="td_data">
    <?php
    echo '<td>'.$Tr_IsSunny.'</td><td>';
    if (
    $UV == 0)
    echo
    'No';
    if (
    $UV == 1)
    echo
    'Poco';
    if (
    $UV == 2)
    echo
    'Sufficientemente';
    if (
    $UV == 3)
    echo
    'Abbastanza';
    if (
    $UV == 4)
    echo
    'Molto';
    if (
    $UV == 5)
    echo
    'Eccessivamente';
    if (
    $UV == 6)
    echo
    'Troppo';
    if (
    $UV == 7)
    echo
    'Pericolosamente';
    if (
    $UV == 8)
    echo
    'Rischiosamente';
    if (
    $UV == 9)
    echo
    'Ustionante';
    echo
    '</td><td>'.$Tr_CurrentSolarMax.'</td><td>'.$CurrentSolarMax.' W/m<sup>2</sup></td>'; ?>
    </tr><tr>
    <td colspan="5" class="tableseparator"><?php echo $TT_Rainfall; ?></td>
    </tr><tr class="td_data">
    <?php echo '<td>'.$Tr_rrate.'</td><td>'.$rrate.' '.$rainunit.'/hr</td><td>'.$Tr_rfall.'</td><td>'.$rfall.' '.$rainunit.'</td>'; ?>
    </tr><tr class="td_data">
    <?php echo '<td>'.$Tr_rhour.'</td><td>'.$rhour.' '.$rainunit.'</td><td>'.$month_rain_so_far.'</td><td>'.$rmonth.' '.$rainunit.'</td>'; ?>
    </tr><tr class="td_data">
    <?php echo '<td>'.$Tr_rmidnight.'</td><td>'.$rmidnight.' '.$rainunit.'</td><td>'.$year_rain_so_far.'</td><td>'.$ryear.' '.$rainunit.'</td>'; ?>
    </tr><tr class="td_data">
    <?php echo '<td>'.$Tr_r24hour.'</td><td>'.$r24hour.' '.$rainunit.'</td><td>'.$Tr_LastRainTipISO.'</td><td>'.$LastRainTipISO.'</td>'; ?>
    </tr><tr>
    <td colspan="5" class="tableseparator"><?php echo $TT_Wind; ?></td>
    </tr><tr class="td_data">
    <?php echo '<td>'.$Tr_wlatest.'</td><td>'.$wlatest.' '.$windunit.'</td><td>'.$Tr_currentwdir.'</td><td>'.$currentwdir.'</td>'; ?>
    </tr><tr class="td_data">
    <?php echo '<td>'.$Tr_wgust.'</td><td>'.$wgust.' '.$windunit.'</td><td>'.$Tr_bearing.'</td><td>'.$bearing.'&deg;</td>'; ?>
    </tr><tr class="td_data">
    <?php echo '<td>'.$Tr_wspeed.'</td><td>'.$wspeed.' '.$windunit.'</td><td>'.$Tr_avgbearing.'</td><td>'.$avgbearing.'&deg;</td>'; ?>
    </tr><tr class="td_data">
    <?php echo '<td>'.$Tr_beaufort.'</td><td>'.$beaufort.'</td><td>'.$beaudesc.'</td><td>-</td>'; ?>
    </tr><tr>
    <td colspan="5" class="tableseparator"><?php echo $TT_Press; ?></td>
    </tr><tr class="td_data">
    <?php echo '<td>'.$Tr_press.'</td><td>'.$press.' '.$pressunit.'</td><td>'.$Tr_presstrend.'</td><td>'.$presstrendval.' '.$pressunit.'/hr</td>'; ?>


    </tr><tr>
    <td colspan="5" class="tableseparator"><?php echo $TT_SunAndMoon; ?></td>
    </tr><tr class="td_data">
    <?php echo '<td>'.$Tr_sunrise.'</td><td>'.$sunrise.'</td><td>'.$Tr_sunset.'</td><td>'.$sunset.'</td>'; ?>
    </tr><tr class="td_data">
    <?php echo '<td>'.$Tr_dawn.'</td><td>'.$dawn.'</td><td>'.$Tr_dusk.'</td><td>'.$dusk.'</td>'; ?>
    </tr><tr class="td_data">
    <?php echo '<td>'.$Tr_moonrise.'</td><td>'.$moonrise.'</td><td>'.$Tr_moonset.'</td><td>'.$moonset.'</td>'; ?>
    </tr><tr class="td_data">
    <?php echo '<td>'.$Tr_daylength.'</td><td>'.$daylength.'</td><td>'.$Tr_daylightlength.'</td><td>'.$daylightlength.'</td>'; ?>
    </tr><tr>
    <td colspan="5" class="tableseparator"><?php echo $TT_OurLoc; ?></td>
    </tr><tr class="td_data">
    <?php echo '<td>'.$Tr_latitude.'</td><td>'.$latitude.'</td><td>'.$Tr_longitude.'</td><td>'.$longitude.'</td>'; ?>
    </tr><tr class="td_data">
    <?php echo '<td>'.$Tr_altitude.'</td><td>'.$altitude.'</td><td>'.$Tr_ErrorLight.'</td><td>'.$ErrorLight.'</td><td>&nbsp;</td><td>&nbsp;</td>'; ?>
    </tr>
    </table>
    <p class="credits" style="margin:10px 25px 0px 0px; text-align:right">

    </p>
    il tutto mi tira fuori questo



    Quello che voglio fare è, come avrai certamente capito, far in modo che i valori di Temperatura ed Umidità ecc ecc...Superata una certa soglia vengano visualizzati in ROSSO. Se invece scendono sotto una certa soglia, visualizzarli in blue
    Ultima modifica di czmeteo : 25-01-2013 alle ore 13.58.35

  10. #10
    Guest

    Predefinito

    Prova a sostituire l'inizio con

    Codice PHP:
    <?php
    $tpl_version
    = "1.0";
    if (isset(
    $_GET['ver'])) {
    echo
    $tpl_version;
    exit;
    }

    $classetemp = 'normale';

    if((int)
    $temp > 20)
    {
    $calssetemp = 'caldo';
    }
    else if((int)
    $temp < 0)
    {
    $classetemp = 'freddo';
    }
    else
    {
    $classetemp = 'neutro';
    }

    ?>
    <style>
    .caldo {color: #FF0000;}
    .freddo {color: #0000FF;}
    .neutro {color: #FFFFFF;}
    </style>



    <!-- WEATHER DATA BEGIN -->
    <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="Observations actuelles">
    <caption style="text-align: center;"><strong><?php echo $Tr_CondAt.' '.$time; ?></strong></caption>
    <tr>
    <td colspan="5" class="tableseparator"><?php echo $TT_TempAndHum; ?></td>
    </tr><tr class="td_data">
    <?php echo '<td class="'.$classetemp.'">'.$now_temp.'</td><td>'.$temp.' '.$tempunit.'</td><td>'.$Tr_apptemp.'</td><td>'.$apptemp.' '.$tempunit.'</td>'; ?>
    </tr><tr class="td_data">
    <?php echo '<td>'.$Tr_temptrend.'</td><td>'.$temptrend.' '.$tempunit.'</td><td>'.$Tr_wetbulb.'</td><td>'.$wetbulb.' '.$tempunit.'</td>'; ?>
    </tr>
    ...
    e vedi come va

  11. #11
    Guest

    Predefinito

    Niente...Mi ero entusiasmato. Ma sostituendo la parte iniziale, non succede assolutamente niente. La temperatura ora come ora è inferiore a 10° ma a livello di colore è tutto standard

  12. #12
    Guest

    Predefinito

    mi indichi la pagina che hai pubblicato ?

    PS
    ATTENTO che se guardi bene lo script è impostato per apparire bianco tra 0 e 20 gradi, rosso sopra i 20 e blu sotto lo ZERO.
    Ultima modifica di simpleticket : 25-01-2013 alle ore 17.32.30

  13. #13
    Guest

    Predefinito

    Certo, www.czmeteo.altervista.org

    Questo è un dominio che utilizzo per i test, quindi di aggiornato ci sono solo le telecamere. I dati che vedi invece si rifeiscono ad Ottobre...Ma comunque il parametro TEMPERATURA indica più di 20° quindi a priori dovrebbe comparire rosso o sbaglio?

  14. #14
    Guest

    Predefinito

    fai un'altra prova, prova a togliere gli (int) nelle condizioni if.

    Però qualc osa non mi convince. Almeno class="" nel tag td dovrebbe esserci.
    Sicuro di aver copiato tutto?
    Ultima modifica di simpleticket : 25-01-2013 alle ore 17.45.41

  15. #15
    Guest

    Predefinito

    Sono rientrato ora...Niente da fare, è copiato tutto correttamente ed ho anche provato a togliere (int), tutto come prima purtroppo. Grazie a prescindere per la tua disponibilità

  16. #16
    Guest

    Predefinito

    l'attributo class= è fuori dall'IF e quindi almeno un class="" (in realtà class="neutro") deve esserci per forza. Il fatto che non ci sia è sintomo che qualcosa non quadra. verifica di aver modificato il file corretto, di aver salvato le modifiche, ...

  17. #17
    Guest

    Predefinito

    Si si, copiato tutto correttamente. Salvato, e sovrascritto sul server. Niente da fare, i dati sono identici.

    Ho riprovato anche a togliere (int)...Stessa storia. Non cambia assolutamente niente.

    I realizzatori del template, dove inizialmente ti avevo copiato un procedimento da loro suggerito, mi hanno risposto quanto segue

    As you are using a php template, pages aren't processed, then <#temp>
    is not available in your page!! Data are already in Php, then use it directly, like this:

    if ($temp > 30) ....

    Hope this help!

    Regards

  18. #18
    Guest

    Predefinito

    Qualcosa non torna.

    Anche senza il codice inserito quando viene processata questa parte (modificata)


    Codice PHP:
    <?php echo '<td class="'.$classetemp.'">'.$now_temp.'</td><td>'.$temp.' '.$tempunit.'</td><td>'.$Tr_apptemp.'</td><td>'.$apptemp.' '.$tempunit.'</td>'; ?>
    almeno

    Codice PHP:
    <td class=""> ...
    vien fuori.

    Nella pagina che mi hai linkato invece c'è solo

    Codice PHP:
    <td>...
    quindi ri-contolla.

  19. #19
    Guest

    Predefinito

    No avevo ripristinato tutto perché sto facendo dei tentativi...Ad ogni modo ho finalmente risolto.

    Codice PHP:
    <?php
    if ($temp > 20) // If temperature above 20°C
    {
    $temp_color = '#FF0000'; // Write in Red.
    }
    elseif (
    $temp < 10) // If temperature below 10°C
    {
    $temp_color = '#0000FF'; // Write with Blue.
    }
    else
    // If temperature above 10, but below 20.
    {
    $temp_color = '#FFB0B0'; // Write in Normal.
    }
    ?>
    ...e poi utilizzando lo span : <span style="color:'.$temp_color.'">'.$temp.'</span>

    Ed ecco che funziona...

    Grazie infinite per i tuoi aiuti, per la tua PAZIENZA e per la tua gentilezza!!!! Grazie mille!!!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •