Visualizzazione risultati 1 fino 6 di 6

Discussione: return false in un form?

  1. #1
    Guest

    Predefinito return false in un form?

    Salve, vorrei far in modo che in un form venisse preso del testo da una textarea, però al click sul submit viene cancellato il cotenuto della textarea e vengono eseguiti i comandi php, invece se inserisco return false in onClick="" non vengono inviati i dati. Avevo provato in Javascript a scrivere così:

    Codice PHP:
    function anteprima(testo) {
    document.write("<div style='background: white; width: 100%'>"+testo+"</div>");
    }
    e nella pagina php:

    Codice PHP:
    <textarea name="editor"></textarea>
    <input type="submit" onclick="anteprima("<? echo $_POST['editor'] ?>"); return false">
    Ma ciò che stampa a video è il contenuto e aggiunge "); return false , quindi l' ho tolto ma non stampa comunque a video la div con lo sfondo bianco come scritto nel js e cancella ugualmente il contenuto della textarea.. Pensavo di mettere tutto in un echo e quindi specificare la variabile che contiene 'editor' ma mi complica la vita specialmente quando devo criptare che non mi legge il php.. Avete idee? (per farla breve devo far in modo che venga stampato a video ciò che c'è scritto nella textarea senza che si cancelli il contenuto in essa)

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,761

    Predefinito

    Non puoi usare il metodo write() dopo il caricamento della pagina: leggi qui.

    ..poi, non ti conviene fare tutto in js? ovvero prelevi i dati dalla textarea e, ad esempio, tramite getElementById() aggiungi il contenuto in un div??

    Ciao!

    EDIT:

    Una cosa del genere:

    Codice HTML:
    <!doctype html>
    <html>
    <head>
    <title>pagina</title>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <script type='text/javascript'>
    function aggiungi()
    {
        document.getElementById('contenuto').innerHTML += document.forms[0].input.value;
        document.forms[0].input.value = '';
    }
    </script>
    </head>
    <body>
    <div id='contenuto'>Scritte: </div>
    <form>
    <textarea name='input'></textarea>
    <input type='button' onClick='aggiungi()' value='aggiungi'>
    <input type='button' onClick='document.getElementById("contenuto").innerHTML = "Scritte: "' value='cancella'>
    </form>
    </body>
    </html>
    Ultima modifica di alemoppo : 10-04-2011 alle ore 14.39.37

  3. #3
    Guest

    Predefinito

    Quindi al posto di mettere document.write() dovrei mettere document.getElementById().innerHTML = "" ?

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,761

    Predefinito

    Ho editato sopra... Non so se è quello che volevi...

    Ciao!

    EDIT:

    se non vuoi che si cancelli il testo nella textarea, elimina questa riga:

    Codice HTML:
    document.forms[0].input.value = '';
    ... ma non ho capito se devi per forza usare il PHP e cosa devi fare...

    -----

    ..Comunque, in generale, questo:
    Codice HTML:
    onclick="anteprima("<? echo $_POST['editor'] ?>"); return false"
    Non va bene. Puoi fare ad esempio così:
    Codice HTML:
    onclick="anteprima(\"<? echo $_POST['editor'] ?>\"); return false"
    oppure:
    Codice HTML:
    onclick="anteprima('<? echo $_POST['editor'] ?>'); return false"
    Ultima modifica di alemoppo : 10-04-2011 alle ore 15.00.09

  5. #5
    Guest

    Predefinito

    Ciò che intendevo fare era che in una textarea si scrivono dei codici HTML, poi cliccando su un button (o submit) venisse mostrata l' anteprima di ciò che si è scritto..Sarebbe carino anche in questo modo: http://htmledit.squarefree.com/

    Appena si digita qualcosa il frame inferiore si aggiorna sempre
    Ultima modifica di exabyte : 11-04-2011 alle ore 00.46.16

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,761

    Predefinito

    mmh... perché usare un frame? (sinceramente non mi piacciono).... Cioè, nel sorgente che ti ho scritto, se scrivi nella textarea:
    Codice:
    <span style='color:#F00'>Scritta in rosso</span> <span style='color:#0F0'>Scritta in verde</span> <span style='color:#00F'>Scritta in Blu</span>
    Funziona...

    ...Se proprio vuoi che si aggiorni "real time", allora fai così:

    Codice HTML:
    <!doctype html>
    <html>
    <head>
    <title>pagina</title>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    </head>
    <body>
    <div id='contenuto'>Scritte: </div>
    <form>
    <textarea name='input' onKeyUp="document.getElementById('contenuto').innerHTML = document.forms[0].input.value;"></textarea>
    </form>
    </body>
    </html>
    .

    Io ho usato l'evento "keyup", ma puoi usare keydown o quello che ti pare...

    Ciao!

    EDIT:

    Più semplicemente, questa riga:
    Codice HTML:
    <textarea name='input' onKeyUp="document.getElementById('contenuto').innerHTML = document.forms[0].input.value;"></textarea>
    Si può scrivere:
    Codice HTML:
    <textarea name='input' onKeyUp="document.getElementById('contenuto').innerHTML = this.value;"></textarea>
    Ultima modifica di alemoppo : 11-04-2011 alle ore 16.33.48

Regole di scrittura

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