• User Attivo

    Onsubmit se non devi fare controlli particolari la puoi anche omettere, nel tuo file PHP la variabile link la trovari nelle variabili di request $_POST['link'].


  • User

    Grazie per la risposta, io però ho bisogno dell'istruzione javascript per mandare la variabile in php, cioè la variabile link deve essere mandata alla funzione valori() ma in realtà quello è solo un esempio, ora pensa di avere la variabile link_js nella funzione valori() già con un valore (es. "ciao"), devo ritornare il valore ciao come risultato del form.


  • User Attivo

    Sinceramente non ho capito cosa vuoi fare, comunque considera che le varibili passate al file php con il form sono link e submit.
    Se vuoi far si che se il valore del tuo input link sia diverso, lo devi assegnare nella funzione chiamata da onsubmit.


  • User

    Allora cerco di essere più chiaro:

    Io ho un form, un editor di testo, scrivo nella textarea con le funzioni dell'editor tipo questo in cui sto scrivendo (grassetto, colore, dimensione etc.); la textarea è nella del php, ma le funzioni per modificare il testo sono nello script. Alla fine di tutto io ho una variabile, nello script, che si chiama link_js che contiene tutti i tag html della formattazione del testo. Ora la variabile c'è e si chiama link_js, ha un suo contenuto che deve essere rimandato alla pagina php in cui ho inserito il testo nell'editor per essere memorizzata.


  • Super User

    Ciao gato_lopez,
    puoi creare un input hidden con name="link_js" in cui la funzione valori inserisce il testo elaborato.
    In pratica quando si clicca il pulsante, grazie all'onsubmit viene chiamata la funzione valori che riempie il campo hidden con il valore elaborato.


  • User Attivo

    Puoi fare in questo modo nel onsubmit assegni all'input link il valore della tua variabile link_js.
    Cmq devo dirti che la textarea, tu usi un'input, nei vari editor WYSWYG viene passata alla pagina PHP xche è contenuta nel form.
    Forse ti basterre cambiare il tuo input link cm un textarea link_js.


  • User

    Ho preso un editor im rete, che ha le sue funzioni già pronte, sono riuscito a capire in quale variabile mi mette il risultato del testo formattato. Diciamo che il suo nome è link_js. In realta la form in php che riceve il testo è un iframe.

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

    lo script fa tutte le modifiche del caso, ma questo maledetto editor non ha il pulsante invio ne la ricezione del testo formattato. Io cosa ho fatto?
    Ho aggiunto la funzione "valori()" nello script, il tasto invia e richiamo la funzione nella <form> con onsubmit. Funziona tutto, riesco anche a vedere il testo formattato con un alert, mi manca solo che questa link_js dallo script torni alla form. Volete che vi posto il vero codice di php e js?


  • User Attivo

    allora prova cm detto da ayrton2001


  • User

    quindi l'onsubmit va messo nell'hidden così:

    <input type="hidden" name="link_ja">
    <input type="submit" onsubmit="valori()" value="INVIA">

    e nella funzione valori(), è l'istruzione che mi manca?


  • User Attivo

    onsubmit è un evento del tag <form>, ma il form è nell'iframe? Devi solo aggiungere un input all'interno del form. L'evento onsubmit ti permette di restituire l'esito e di conseguenza il tuo browser chiamera' oppure no la pagina PHP.


  • User

    L'iframe è il quadrato dove si scrive il testo, è l'iframe che è all'interno della <form>. Mi correggeresti il codice? Perchè non rieco a capire.

    <form action="{$_SERVER['PHP_SELF']}?lin=$lingua&id=$id" method="POST" onsubmit="valori()">
    ...
    ...
    diverse select per la formattazione del carattere
    ...
    ...
    [LEFT]<iframe class="Composition" width="100%" id="Composition" height="190">[/LEFT]
    </iframe>
    <input type="hidden" name="confirm" value="1"><input type="submit" value="".CALX_INVIA.""> (questo l'ho aggiunto io insieme a onsubmit="valori())

    Le funzioni dello script vengono evocate dalle select.
    Lo script come ho detto riceve il testo inserito nell'iframe e gli inserisce i tag html per formattare il testo.
    Lo script ha le sue funzioni come ho detto e questa funzione che ho aggiunto io:
    [LEFT]
    function
    valori()[/LEFT]
    {
    [LEFT] [/LEFT]
    link_js=...ricezione testo formattato(ma questo cer l'ho già, non mi serve) ;
    istruzione per mandare link_js a php.

    }


  • User Attivo

    sinceramente preferisco postari un'esempio simile al tuo,

    
    <?php
    if(isset($_POST['submit'])){
        echo $_POST['link'];
        exit();
    }
    ?>
    <script type='text/javascript'>
        function valori(){
            form1.link.value = "prova";
            return true;
        }    
    </script>
    
    <form method='post' action="index.php" onsubmit='return valori();' name='form1'>
        <input name='link' value='del 9' type='text'/>
        <input name='submit' value='invia' type='submit'/>
    </form>
    
    

    grosso modo dovrebbe funzionare, lho scritto al volo


  • User

    E' perfetto e funziona, ma ancora non si adatta a pieno al mio utilizzo:

    [LEFT]function valori()
    {
    c="testo formattato";
    form1.link.value = c;

    [/LEFT]
    }

    Ora riesco a passare il valore che mi serve ma viene visualizzato la casella input di:
    <input name="link" value="del 9" type="text">.

    Provo a dare il nome "link" al mio iframe, ma non funziona:

    [LEFT]<iframe class="Composition" name="link" width="100%" id="Composition" height="190">[/LEFT]
    </iframe>

    Però credo che ci siamo, al massimo faccio in modo che quell'input non sia visibile, però ho ancora una speranza. Come posso fare a nominare l'iframe?


  • User

    Risolto, il name="link" lo metto nel bottone:

    <input type="submit" name="link" value="Invia">

    Grazie a tutti.

    A presto.