Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [PHP]applicare stessa classe ai td della tabella

    Ciao!Io prelevo un testo da un database che può essere così:

    codice:
    <table class="uno">
    <tr>
    <td>Ciao</td>
    <td>Ciao</td>
    <td>Ciao</td>
    </tr>
    </table>
    
    <table class="due">
    <tr>
    <td>Ciao</td>
    <td>Ciao</td>
    <td>Ciao</td>
    <td>Ciao</td>
    <td>Ciao</td>
    </tr>
    </table>
    Tramite un ciclo devo fare in modo di applicare la stessa classe che è applicata alla tabella ai singoli td. Io ne sto uscendo pazzo, c'è qualcuno che mi aiuta a farlo?

    Grazie in anticipo!
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  2. #2

  3. #3
    vedo che non ci siamo capiti

    Il testo viene inserito nel db nella forma che ho scritto sopra, e quando viene estratto devo andare a leggere la classe applicata alla table ed applicarla ad ogni singolo td.
    Non posso fare come hai detto tu, quello lo faccio se il testo è statico, il mio è tutto dinamico.

    Le tabelle che vedi vengono create da un editor di testo che è l'htmlArea, ma io sto tentando di rendere il tutto accessibile e quindi devo implementare delle classi.

    Spero di essermi spiegato meglio.

    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  4. #4
    up
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  5. #5
    Mi sembrava troppo facile la soluzione:
    allora potresti fare in questo modo:

    $codiceTabella = //valore presente nel db

    $tabella = str_replace("<td>", "<td class="uno">", $codiceTabella);

    echo $tabella;

    spero di aver capito correttamente adesso.

  6. #6
    Grazie per la risposta, ma purtroppo non ancora ma ci siamo quasi
    Fosse solo str_replace sarebbe troppo facile.

    Dunque, io sto finendo di implementare un sistema di gestione news in modo che ogni cliente, volendo possa inserire delle news sul suo sito; il tutto l'ho fatto utilizzando L'HTMLArea versione 3.0 beta.

    Il codice che mi genera non è però completamente XHTML e quindi validabile e io sto cercando di renderlo validabile. Per le tabelle l'elemento bordo non posso metterlo se non da css, solo che mettendolo da css devo specificare la classe anche ad ogni td (almeno così mi hanno detto). E la parte difficile è proprio questa, in base al bordo vengono generate diverse classi (uno, due, tre, etc...) io quindi nel momento in cui recupero il testo devo innanzitutto verificare l'esistenza di una tabella, e questo è semplice, ma poi la parte che non mi riesce è la seguente:

    - una volta individuata la tabella devo vedere se e soprattutto che classe gli è applicata;
    - applicare quella classe a tutti i td della medesima tabella.

    U'altra cosa difficile è il fatto che ad esempio in una news ci possono essere più di una tabella (ognuna con una propria classe) quindi io devo fare questo procedimento per ogni tabella che c'è. Facendo attenzione a non mescolare le classi.

    Spero si possa fare una cosa de genere e non sia una mia semplice utopia.

    Grazie mille
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  7. #7
    Se la classe che devi applicare è solo per le caratteristiche della tabella non è necessario riportarla per ogni cella (<td>), quindi basta cercare all'interno del tuo "testo" i tag <table> e aggiungerci vicino class='classeDellaTabella'.

    Per questo penso che basti un ciclo che parsi tutte le parole e, con i dovuti controlli, dovrebbe funzionare....


    approfitto per porre io una domanda:
    utilizzo anche io HTMLarea (non ricordo che versione al momento) e ho alcuni problemi con la visualizzazione: in pratica a volte (spesso) quando visualizzo il tool, la barra dei pulsanti viene visualizzata correttamente, mentre l'area testo dà qualche problema (altezza e larghezza in articolar modo): da cosa possono essere provocati questi errori? esiste un modo per risolverli? Se è il caso aprirò un nuovo topic a proposito.

  8. #8
    edit

    Ho scritto mentre rispondevi
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  9. #9
    Originariamente inviato da Beppesan
    Se la classe che devi applicare è solo per le caratteristiche della tabella non è necessario riportarla per ogni cella (<td>), quindi basta cercare all'interno del tuo "testo" i tag <table> e aggiungerci vicino class='classeDellaTabella'.

    Per questo penso che basti un ciclo che parsi tutte le parole e, con i dovuti controlli, dovrebbe funzionare....
    Dunque, io ho un codice generato dall'HTMLArea che è così:

    codice:
    <table style="WIDTH: 100%" border="2">
     <tbody>
      <tr>
       <td></td>
       <td></td>
      </tr><tr>
       <td></td>
       <td></td>
      </tr>
     </tbody>
    </table>
    Io tramite str_replace rimpiazzo ogni border con la classe corrispondente, in questo caso con class="due" e il tutto funziona correttamente. La classe due dovrebbe mettermi un bordo ed infatti me lo mette ma SOLO sul contorno ed è per questo che la dovrei applicare ad ogni cella.
    Per dovere di cronaca il CSS è questo:
    codice:
    .due, .due td { border: 2px solid #000000; border-collapse: collapse;}
    Se si potesse mettere una sola tabella non sarebbe complicata la storia, ma il punto è che lo devo fare sapendo che le tabelle possono essere più di una.

    approfitto per porre io una domanda:
    utilizzo anche io HTMLarea (non ricordo che versione al momento) e ho alcuni problemi con la visualizzazione: in pratica a volte (spesso) quando visualizzo il tool, la barra dei pulsanti viene visualizzata correttamente, mentre l'area testo dà qualche problema (altezza e larghezza in articolar modo): da cosa possono essere provocati questi errori? esiste un modo per risolverli? Se è il caso aprirò un nuovo topic a proposito.
    Per questo mi dispiace, ma non saprei darti una risposta, a me non è mai successo, prova ad aprire una discussione in Scripting. Comunque se ho capito (anche se dubito ) imposta altezza e larghezza della textarea dandole numero di righe e colonne (attributi rows e cols).




    p.s. la discussione su html dove mi hanno detto che devo farlo su ogni td è questa .
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  10. #10
    Io ho una tabella di questo tipo:
    <table cellpadding="2" cellspacing="0" border="1" width="90%" bordercolor="#9CB4C9"> ......

    e mi visualizza tutti i bordi di tutti le celle, a patto che contengano qualcosa.

    quindi potrebbe essere questo il problema: che hai delle celle vuote.

    Potresti provare a mettere & n b s p ; (ho dovuto scriverlo con gli spazi altrimenti non lo visualizzava.... buco del forum mi sa..) nelle celle vuote.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.