n° 219
Novembre 2017
Dicembre 11, 2017, 08:53:38 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  


* Messaggi recenti
Messaggi recenti
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: Problema con testo multilinea in <td>  (Letto 3821 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
Depa Marco
Newbie
*

Karma: +1/-0
Scollegato Scollegato

Messaggi: 5


Mostra profilo
« inserita:: Settembre 04, 2013, 03:03:16 »

Ciao a tutti.
In una mia applicazione web, riscontro un grosso problema nella disposizione grafica di alcuni contenuti.

Da un form in una pagina HTML, l'utente può inserire (in un <textarea>) un testo libero. Al submit, del codice PHP inserisce questo testo (esattamente com'è) in un database (MySQL, campo di tipo "varchar").

In una seconda pagina, eseguo una query per prelevare questo testo ed intendo inserirlo in una tabella (precisamente in un tag <td>), ma non riesco a settare il multilinea!!

Se il testo è più lungo del previsto, il width della pagina si estende... Triste

Come posso fare?? L'ideale, per me, sarebbe settare questa proprietà direttamente dal codice CSS...
Ma ogni "trucco" è ben accetto...

Grazie mille
Registrato
bertolottipf
Full Member
***

Karma: +4/-7
Scollegato Scollegato

Messaggi: 443


Mostra profilo E-mail
« Risposta #1 inserita:: Settembre 04, 2013, 03:47:49 »

Dai le dimensioni al contenitore del testo OPPURE, dato che gli a capo sono identificati da \n (o \r\n, \r\n), non so (per questo, queryzza), devi far sì che \n (\n\r, \r\n) sia sostituito da <br>
Registrato
alex.75
invioattach
Full Member
***

Karma: +14/-4
Scollegato Scollegato

Messaggi: 357



Mostra profilo WWW
« Risposta #2 inserita:: Settembre 04, 2013, 09:49:44 »

Una soluzione può essere usare una textarea appositamente resa "readonly".

La soluzione più comune, già suggerita, è la sostituzione del carattere "new line" (basta il "\n", mi pare che tu possa bellamente ignorare il "\r") con un elemento BR (guarda il tuo stesso post come è stato renderizzato!).

Hai già provato a copiare da qualche sito, perché no?
Ti suggerisco di farlo, in generale, perché guardando il codice di siti ben fatti si impara molto, anzi moltissimo. Spesso si finisce su argomenti e soluzioni che non erano neppure stati presi in considerazione.

Invece nel caso di testo che rappresenti codice sorgente la soluzione più indicata è l'utilizzo dell'elemento PRE (vedi documentazione), in quanto viene renderizzato usando un font con caratteri a larghezza fissa.

Poi è comunque una buona idea impostare la proprietà CSS max-width dell'elemento TD contenitore, in modo da limitare la larghezza dell'elemento td stesso (e quindi rimanere su una larghezza canonica che permetta una lettura agevole del testo multilinea).

ciao
Registrato
Depa Marco
Newbie
*

Karma: +1/-0
Scollegato Scollegato

Messaggi: 5


Mostra profilo
« Risposta #3 inserita:: Settembre 05, 2013, 12:36:30 »

ciao Sorriso
Grazie mille per le risposte...

In effetti, anche io avevo pensato a sostituire lo '\n' con il <br> ma, mi sono accorto, che anche se io premo INVIO nell'inserimento del testo, questi viene inserito nel database senza '\n', quindi la sostituzione fallirebbe...

Devo per caso settare un qualcosa sul textarea che dica di preservare questi caratteri speciali?? Perchè potrebbe essere una soluzione accettabile.

Cercando su internet, ho provaro e riprovato moltissime soluzioni ("white-space: pre;" nel CSS del TD è una di queste), ma senza venirne a capo.

In alternativa, potrei settare la dimensione massima del TD (come mi è stato da voi suggerito) e fare in modo che il contenuto di conseguenza si disponga su due linee??

Grazie mille davvero a tutti.
Buona giornata.
Registrato
alex.75
invioattach
Full Member
***

Karma: +14/-4
Scollegato Scollegato

Messaggi: 357



Mostra profilo WWW
« Risposta #4 inserita:: Settembre 08, 2013, 10:44:56 »

Citazione
questi viene inserito nel database senza '\n'

Quando "premi invio" il testo nella TEXTAREA va a capo?
Se sì, abbiamo il carattere di "new line".

Il carattere di new-line viene certamente riportato nel rispettivo elemento della collezione di campi inviati tramite il Post dal browser.
Qualsiasi sia il linguaggio server che utilizzi, a mio avviso non è qui he devi andare a modificare tale testo, infatti è preferibile salvarlo sul database così come è stato inserito dall'utente.
Non devi eliminare questa informazione.
Sarà poi il fruitore dell'informazione che effettuerà conversioni, troncamenti o altro.
Ad esempio potrebbe essere riportata su un file di testo, quindi eliminandoli prima perderesti gli "a capo".

Il problema è la visualizzazione tramite HTML che richiede qualcosa che renderizzi questi "a capo" ed è appunto con la sostituzione già detta che si ottiene il risultato voluto.

ciao
Registrato
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2017 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



powered by Simple Machines