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

    Mandare a capo il testo se preme il tasto Enter

    Salve,
    mi sembra una cosa assai "stupida" ma anche cercando non ho trovato niente, magari ho sbagliato cosa cercare

    Allora, ho la mia bellissima textarea in cui l'utente inserisce delle scritte, quando le vado a visualizzare son sempre tutte attaccate, anche se l'utente manda a capo, dovrei fare un controllo se ha premuto il tasto invio di aggiungere un /n alla textarea o cos'altro?

  2. #2
    ciao,
    le textarea creano testo non formattato con il charset indicato nella tua pagina. Questo, ovviamente, non è HTML, quindi devi essere tu a formattarlo quando viene spedito al server.
    Se utilizzi PHP puoi utilizzare la funzione htmlentities($tuo_testo, ENT_QUOTES, 'UTF-8'), se vuoi trasformare tutti i caratteri UTF-8 (è,à,ò, etc) nelle corrispondenti HTML ENTITIES (è à etc). Per l'a capo la cosa è diversa, perché lo \n non viene indicato come "a capo" da questa funzione, quindi devi essere tu, a trasformarlo in
    .
    Ma qui viene il bello: windows non utilizza \n per indicare l'a capo, ma \r\n, inoltre, Mac OS X ha nel suoi charset (Mac Roman, mi sembra) il \r come a capo.
    La cosa migliore, è utilizzare una serie di search&replace server side (tipo str_replace di PHP), in questo modo:
    Codice PHP:
    $txt//Metti che qui ci sia il testo passato dalla textarea
    $txt htmlentities($txtENT_QUOTES'UTF-8');
    $txt str_replace('\r\n'"
    "
    $txt);
    $txt str_replace('\r'"
    "
    $txt);
    $txt str_replace('\n'"
    "
    $txt); 
    Ora in $txt c'è solo carattere formattato in HTML Entities, con gli a capo nel posto giusto.

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    Re: Mandare a capo il testo se preme il tasto Enter

    Originariamente inviato da goikiu
    Salve,
    mi sembra una cosa assai "stupida" ma anche cercando non ho trovato niente, magari ho sbagliato cosa cercare

    Allora, ho la mia bellissima textarea in cui l'utente inserisce delle scritte, quando le vado a visualizzare son sempre tutte attaccate, anche se l'utente manda a capo, dovrei fare un controllo se ha premuto il tasto invio di aggiungere un /n alla textarea o cos'altro?
    :master: Non so. Se Scrivo su un TextArea, premo enter per andare a capo, salvo in database, quando rileggo i dati, sempre su TextArea, li vedo esattamente come digitati, con tutti gli "a capo"
    Pietro

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    15
    Continuo qui per non aprire un altro topic...

    Ho provato il frammento di codice e funziona alla grande!! Il problema viene fuori quando devo prelevare i dati dal database, quando scrivo ciò che c'è dentro la variabile $txt me lo scrive senza gli "a capo". Come mai?

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    97
    un po' di tempo fa mi son trovato di fronte allo stesso problema.. io ho risolto così

    sia $txt la stringa da visualizzare nella textarea

    Codice PHP:
    $strarray explode("\n"$txt);
    $str="";
    for (
    $i=0$i<count($strarray); $i++)
        
    $str=$str.(addslashes(trim($strarray[$i])))."\\\n";
    $str substr($str,0,strlen($str)-2); 
    quindi stampo $str nella text area:

    Codice PHP:
    print '<script language=javascript>document.form.textarea.value="'.$str.'";</script>'

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    15
    Grazie mille ad entrambi!

    Li ho provati tutti e due e funzionano! Ho adottato il metodo nl2br(); che è più semplice e veloce.




  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    97
    al posto del cosiddetto "casino" che ho fatto io ho provato con
    Codice PHP:
    print '<script language=javascript>document.form.textarea.value="'.nl2br($_POST['testo']).'";</script>'
    ma non funziona.. ho visto la pagina html generata e si il
    lo mette poi però va a capo lo stesso quindi il codice javascript generato non va bene proprio a causa dell'andata a capo, ad esempio mi viene generato

    Codice PHP:
    print '<script language=javascript>document.form.textarea.value="prova questo

    testo";</script>'

    perchè?

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    97
    funziona perchè tu generi codice html...

    se generi codice javascript non funziona

    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">

    <head>
        <title>:: Prova nl2br</title>
    </head>


    <body>

    <?php
    if(isset($_POST['invia']))
    {
        
    $testo_formattato str_replace("
    "
    ""$_POST['testo']);
        
    $testo_formattato nl2br($testo_formattato);
    }
    ?>
        <form name="formname" method="post">
            <textarea name="testo" rows="10" cols="50"></textarea>
            <input type="submit" name="invia" />
        </form>
    </body>
    </html>

    <?
    echo '<script language=javascript>document.formname.testo.value="'.$testo_formattato.'";</script>';
    ?>
    io ho la necessità di usare javascript..

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    97
    guarda il codice che ti ho mandato...
    cerco di stampare la stringa contenuta in $testoformattato nella textarea tramite una riga javascript ma non funziona se metti un ritorno a capo, se lo provi vedrai.

    il fatto è che la pagina mia è molto dinamica e non posso evitare l'uso del javascript

    un'altra cosa.. col tuo metodo però stampa anche i

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    97
    va beh ... volevo snellire il mio codice usando nl2br... ma questa funzione nn fa proprio al caso mio.. :master:

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.