Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Javascript --> Php

  1. #1

    Javascript --> Php

    Ciao a tutti,

    Ho una funzione javascript che deve manipolare un testo in un certo modo e ritornarmelo in una variabile php.

    Questa funzione viene richiamata nel onclick di un tag <A>.

    Avete qualche idea?
    Erebigal

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    2 idee (alternative):
    1) form (eventualmente con invio automatico)
    2) ajax (non lo conosco, ma ci sono molti thread al riguardo)
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Grazie della risposta cosi celere...

    riguardo al primo suggerimento cosa intendi per form automatico?
    Come si realizza?
    Erebigal

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Intendo un form, che viene inviato in modo trasparente quando l'utente compila un campo (senza necessita` di premere il bottone submit o il tasto enter). Necessita di JS.

    Se fai un esempio concreto, si puo` vedere come risolvere.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Allora in pratica io ho un iframe che contiene del testo.
    Ho fatto un link che si chiama salva che sull'evento on click esegue una funzione JS che prende il contenuto dell'IFRAME.
    Adesso questo contenuto vorrei salvarlo su una variabile PHP.

    codice:

    <html>
    <head>
    <title>editor</title>

    <script language="JavaScript">

    var bHtmlMode = false;
    var str_iFrameDoc = (document.all)? "document.frames(\"Composition\").document\;": "document.getElementById(\"Composition\").contentD ocument\;";

    function save_text(){
    iFrameDoc = eval(str_iFrameDoc);
    riquadro = iFrameDoc.body;
    testo=riquadro.innerHTML;
    iFrameDoc.src="http://localhost/CMS/index.php";
    }

    function load_text(testo){
    initialize();
    iFrameDoc = eval(str_iFrameDoc);
    riquadro = iFrameDoc.body;
    testo = document.createTextNode(testo);
    riquadro.innerHTML = "";
    riquadro.appendChild(testo);
    testo = document.createRange();
    testo.selectNodeContents(riquadro);
    riquadro.innerHTML = testo.toString();
    }

    </script>
    </head>
    <?php $pagina="TESTO che deve essere visualizzato cosi come e

    a capo";
    echo $stringa;
    ?>

    <body bgcolor="#FFFFFF" topmargin="0" marginheight="2" onload="load_text('<?php echo $pagina; ?>')">
    <form action="" method="POST" name="composeForm">




    <iframe class="Composition" width="100%" id="Composition" height="190">
    </iframe>


    </body>
    </html>


    PIU o MENO COSI (se ho dimenticato qualche tag è un problema COPIA e INCOLLA.)
    Erebigal

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    E se fosse di non usare l'eval() (deprecato)?
    E se fosse di scrivere in maniera moderna?
    E se fosse di usare variabili locali, anziche` globali?
    E se fosse di inserire i codici dentro gli appositi tag del forum [ code ] ... [ /code ] ?

    Non ho capito cosa vuoi salvare, ma suppongo che hai una certa stringa in una variabile JS (suppongo sia la tua variabiel testo).
    Devi prepararti un <form>, eventualmente in un'area nascosta:
    codice:
    <form id="ricez" action="ricez.php" method="post" style="visibility: hidden;">
    <textarea name="rr"> </textarea>
    </form>
    Il codice JS sara` del tipo
    codice:
    function saveText() {
      var iFrameDoc = document.getElementById('Composition').contentDocument;
      var testo = iFrameDoc.document.body.innerHTML;   /* credo intendessi questo */
      var ff = document.getElementById('ricez');
      ff.rr.value = testo;
      ff.submit();
    }
    Nota che a questo punto la pagina viene ricaricata. Se non ti va bene, occorre inserire il <form> dentro un altro frame/iframe oppure usare AJAX.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Ciao....


    guarda ci ho provato...ma senza successo...se puoi darci una occhiata tu e dirmi dove sbaglio.
    Lo script l'ho preso da questo sito...e ho provato a modificarlo un po..





    <html>
    <head>
    <title>editor</title>
    <script language="JavaScript">

    var bHtmlMode = false;
    var str_iFrameDoc = (document.all)? "document.frames(\"Composition\").document\;": "document.getElementById(\"Composition\").contentD ocument\;";

    // Inizializzazione

    function initialize() {
    iFrameDoc = eval(str_iFrameDoc);

    iFrameDoc.open();
    iFrameDoc.write("<html><body MONOSPACE style='font:10pt arial,sans-serif'></body></html>");
    iFrameDoc.close();
    iFrameDoc.designMode = "On";

    document.getElementById("switchMode").checked = false;

    if (!document.all) {
    document.getElementById("taglia").style.visibility = "hidden";
    document.getElementById("copia").style.visibility = "hidden";
    document.getElementById("incolla").style.visibilit y = "hidden";
    }
    }

    // Porta il focus al riquadro di testo
    function setFocus() {
    if (document.all)
    document.frames("Composition").focus();
    else
    document.getElementById('Composition').contentWind ow.focus()
    return;
    }

    // Controlla se la toolbar è abilitata nella modalità testo
    function validateMode() {
    if (! bHtmlMode)
    return true;
    alert("Deselezionare \"Visualizza HTML\" per utilizzare le barre degli strumenti");

    setFocus();
    return false;
    }

    // Formatta il testo
    function formatC(what,opt) {
    if (!validateMode())
    return;

    iFrameDoc = eval(str_iFrameDoc);
    iFrameDoc.execCommand(what,false,opt);

    setFocus();
    }

    //Scambia tra la modalità testo e la modalità HTML.
    function setMode(newMode) {
    var testo;

    bHtmlMode = newMode;

    iFrameDoc = eval(str_iFrameDoc);
    riquadro = iFrameDoc.body;

    if (document.all) {
    if (bHtmlMode) {
    testo = riquadro.innerHTML;
    riquadro.innerText = testo;
    } else {
    testo = riquadro.innerText;
    riquadro.innerHTML = testo;
    }

    } else if(document.getElementById && document.createTextNode) {
    if (bHtmlMode) {
    testo = document.createTextNode(riquadro.innerHTML);
    riquadro.innerHTML = "";
    riquadro.appendChild(testo);
    } else {
    testo = document.createRange();
    testo.selectNodeContents(riquadro);
    riquadro.innerHTML = testo.toString();
    }
    }

    setFocus();
    }

    function load_text(testo){
    initialize();
    iFrameDoc = eval(str_iFrameDoc);
    riquadro = iFrameDoc.body;
    testo = document.createTextNode(testo);
    riquadro.appendChild(testo);
    testo = document.createRange();
    testo.selectNodeContents(riquadro);
    riquadro.innerHTML = testo.toString();

    }

    function save_text(){
    var testo = riquadro.innerHTML;
    var ff = document.getElementById('composeForm');
    ff.rr.value = testo;
    ff.submit();
    }


    </script>
    </head>

    <?php $pagina=" TESTO DA VISUALIZZARE AL
    CARICAMENTO DEL TUTTO
    ";

    echo $_POST['rr'];

    ?>


    <body bgcolor="#FFFFFF" topmargin="0" marginheight="2" onload="load_text('<?php echo $pagina; ?>')">
    <form action="#" method="POST" name="composeForm">
    <form id="ricez" action="editor.php" method="post" style="visibility: hidden;">



    <table border="0" cellpadding="5" cellspacing="0" bgcolor="#FFFFFF" width="100%" class="greyborder">
    <tr>
    <td>

    <div id="ParaToolbar">
    <select id="FontSize" onchange="formatC('fontsize',this[this.selectedIndex].value);this.selectedIndex=0">
    <option class="heading" selected>Dimensione
    <option value="1">1
    <option value="2">2
    <option value="3">3
    <option value="4">4
    <option value="5">5
    <option value="6">6
    <option value="7">7
    </select>

    <select id="FontColor" onchange="formatC('forecolor',this[this.selectedIndex].value);this.selectedIndex=0">
    <option class="heading" selected>Colore Testo
    <option value="red">rosso
    <option value="blue">blu
    <option value="green">verde
    <form value="black">nero
    </select>

    <div id="EditMode">
    <input type=hidden name="switchMode" id="switchMode" onclick="setMode(switchMode.checked)">
    </div>
    <hr>

    </div>

    <table>
    <tr>
    <td>
    <div title="Grassetto" onclick="formatC('bold');">
    [img]img/bold.gif[/img]
    </div>
    </td>

    <td>
    <div title="Corsivo" onclick="formatC('italic')">
    [img]img/italic.gif[/img]
    </div>
    </td>
    <td>
    <div title="Sottolineato" onclick="formatC('underline')">
    [img]img/under.gif[/img]
    </div>

    </td>
    <td>
    <div title="Allinea a sinistra" onclick="formatC('justifyleft')">
    [img]img/aleft.gif[/img]
    </div>
    </td>
    <td>
    <div title="Centra" onclick="formatC('justifycenter')">
    [img]img/center.gif[/img]

    </div>
    </td>
    <td>
    <div title="Allinea a destra" onclick="formatC('justifyright')">
    [img]img/aright.gif[/img]
    </div>
    </td>
    <td>
    <div title="Elenco puntato" onclick="formatC('insertorderedlist')">

    [img]img/nlist.gif[/img]
    </div>
    </td>
    <td>
    <div title="Elenco numerato" onclick="formatC('insertunorderedlist')">
    [img]img/blist.gif[/img]
    </div>
    </td>
    <td>

    <div title="Riduci rientro" onclick="formatC('outdent')">
    [img]img/ileft.gif[/img]
    </div>
    </td>
    <td>
    <div title="Aumenta rientro" onclick="formatC('indent')">
    [img]img/iright.gif[/img]
    </div>
    </td>

    <td>
    <div id="taglia" title="Taglia" onclick="formatC('cut')">
    [img]img/cut.gif[/img]
    </div>
    </td>
    <td>
    <div id="copia" title="Copia" onclick="formatC('copy')">
    [img]img/copy.gif[/img]
    </div>

    </td>
    <td>
    <div id="incolla" title="Incolla" onclick="formatC('paste')">
    [img]img/paste.gif[/img]
    </div>
    </td>
    </tr>
    </table>
    <iframe class="Composition" width="100%" id="Composition" height="190" name="rr">
    </iframe>
    SALVA
    </td>
    </tr>
    </table>
    </form>
    </form>
    </body>
    </html>
    Erebigal

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.