• User

    Cambiare background color di una cella dinamica in base al contenuto

    Ciao!!
    Piccola curiosità... Qualcuno è mai riuscito a cambiare il colore di sfondo di una cella di una tabella dinamica in funzione del contenuto?

    Spiego con un esempio (totalmente inventato,ma spero aiuti a capire): immaginate un database contenente una tabella con un elenco degli articoli che si possono acquistare. Nella tabella ci sarà un campo (chiamiamolo "disponibilità") che può avere solo questi 2 valori: "disponibilie" o "non disponibile". Infine ci sarà una pagina web in cui viene mostrato tramite una tabella dinamica l'elenco di tutti i prodotti.

    Facile fino a qui vero? 😉

    Arriviamo quindi al punto: per ogni riga della tabella dinamica vorrei che la cella relativa alla "disponibilità" del prodotto avesse sfondo verde se il prodotto è "disponibile" oppure rosso se "non disponibile".

    P.s. Incredibile... a parole sembra complicato ma in realtà il concetto è una sciocchezza 😉


  • User

    @Smartix said:

    Ciao!!
    Piccola curiosità... Qualcuno è mai riuscito a cambiare il colore di sfondo di una cella di una tabella dinamica in funzione del contenuto?

    Spiego con un esempio (totalmente inventato,ma spero aiuti a capire): immaginate un database contenente una tabella con un elenco degli articoli che si possono acquistare. Nella tabella ci sarà un campo (chiamiamolo "disponibilità") che può avere solo questi 2 valori: "disponibilie" o "non disponibile". Infine ci sarà una pagina web in cui viene mostrato tramite una tabella dinamica l'elenco di tutti i prodotti.

    Facile fino a qui vero? 😉

    Arriviamo quindi al punto: per ogni riga della tabella dinamica vorrei che la cella relativa alla "disponibilità" del prodotto avesse sfondo verde se il prodotto è "disponibile" oppure rosso se "non disponibile".

    P.s. Incredibile... a parole sembra complicato ma in realtà il concetto è una sciocchezza 😉

    Basta avere un Css con 2 classi differenti una con un colore di sfondo e l'altra con un altro, quando vai a stampare la disponibilità stampi anche la classe Css idonea alla casella della tabella


  • User

    Ciao!! Grazie per la risposta...

    Ok per quanto riguarda css e 2 classi, ma come faccio a "insegnare" al browser (tramite codice) ad associare la classe "rosso" al valore "non disponibile" e la classe "verde" al valore "disponibile"?


  • User Attivo

    [PHP]echo "<td class='";
    if($result['disponibilita'] == "disponibile")
    {
    echo "rosso";
    }
    else
    {
    echo "verde";
    }
    echo "'>CONTENUTO</td>";[/PHP]


  • User

    Grazie per la risposta,

    purtroppo non mi è chiarissimo il significato del codice. Colpa mia :arrabbiato:

    Dunque:

    a) la prima riga echo "<td class='"; --> echo serve per stampare a video qualcosa che poi viene visualizzato dall'utente attraverso il browser giusto? Ma le parole "td class='" non devono essere visibili...

    b) echo "rosso";
    }
    else
    {
    echo "verde";
    }

    Rosso e verde non dovrebbero essere invertiti?

    c)echo "'>CONTENUTO</td>"; --> significato di questa parte mi è un po' oscuro. La mia ipotesi è che sia la continuazione della prima linea....

    d) dove inserire il codice? Forse forse ho capito come fare:
    -tabella dinamica
    -imposto "area ripetuta"
    -seleziono il "table placeholder" e imposto una classe css per la cella interessata
    -mi sposto in vista codice e cerco il codice relativo alla classe css che ho appena impostato
    -sostituisco quella porzione di codice con quello che tu hai scritto ad eccezione della parola "CONTENUTO"

    P.s. Immagino che leggendo questo post molti si stiano rotolando dalle risate... che dire... probabilmente fanno bene :eheh:


  • User Attivo

    @Smartix said:

    a) la prima riga echo "<td class='"; --> echo serve per stampare a video qualcosa che poi viene visualizzato dall'utente attraverso il browser giusto? Ma le parole "td class='" non devono essere visibili...

    <td> è il codice HTML per indicare una cella di una tabella, davo per scontato che conoscessi l'HTML, ma forse usi dreamweaver in "progettazione".

    @Smartix said:

    b) echo "rosso";
    }
    else
    {
    echo "verde";
    }

    Rosso e verde non dovrebbero essere invertiti?

    Infatti, ho sbagliato. Devono essere invertiti 😄

    @Smartix said:

    c)echo "'>CONTENUTO</td>"; --> significato di questa parte mi è un po' oscuro. La mia ipotesi è che sia la continuazione della prima linea....

    Sì, stessa risposta della prima domanda. Continua l'HTML.

    @Smartix said:

    d) dove inserire il codice? Forse forse ho capito come fare:
    -tabella dinamica
    -imposto "area ripetuta"
    -seleziono il "table placeholder" e imposto una classe css per la cella interessata
    -mi sposto in vista codice e cerco il codice relativo alla classe css che ho appena impostato
    -sostituisco quella porzione di codice con quello che tu hai scritto ad eccezione della parola "CONTENUTO"

    Questa parte è per me la più oscura, il fatto è che non ho mai usato dreamweaver se non per scriverci codice, quindi non so come ti faccia funzionare lui la "tabella dinamica", ma è quello che cercavo di fare io. Forse, se non conosci l'HTML, c'è qualcuno che sa come fare utilizzando i "comandi" di Dreamweaver.

    p.s. Sto dando per scontato che tu stia usando dreamweaver. in ogni caso, ci dovrebbe essere una funzione analoga 😛