• User Attivo

    Creare e richiamare una funzione PHP in un form HTML. Dove sbaglio?

    Buongiorno a tutti 😄

    Ho appena fatto uno stupidissimo form HTML.
    Al click sul pulsante "Conferma" dovrebbe essere richiamata la funzione scritta in PHP.
    Eccovi il codice...

    
    <body>
    <form name="form_messaggio_personale" method="post" onsubmit="return salvataggio_messaggio_personale()">
            <input type="text" name="messaggio_personale" size="50" />
            <input type="submit" name="pulsante_messaggio_personale" value="Conferma" onclick="salvataggio_messaggio_personale()"/>
    </form>
    
    <?php
    function salvataggio_messaggio_personale()
    {
    echo "Ciao a tutti";
    }
    ?>
    
    </body>
    
    

    In realtà al posto di "Ciao a tutti" devo far salvare nel database MySQL il messaggio inserito nel form (ma questa è un'altra storia).

    Comunque a me sembra tutto corretto, al click sul pulsante di conferma dovrebbe apparire la scritta "Ciao a tutti", ma non accade nulla (si nota solo una sorta di veloce caricamento della pagina).

    Dove sbaglio?
    Qualcuno ha qualche idea? Qualche suggerimento? :mmm:

    Grazie :ciauz:


  • ModSenior

    Ciao Protone86,

    le funzioni php non sono funzioni javascript, non puoi richiamarle in quel modo perchè avvengono lato server e non lato client, dovresti fare cosi:
    [php]
    <body>
    <form name="form_messaggio_personale" method="post" >
    <input type="text" name="messaggio_personale" size="50" />
    <input type="submit" name="pulsante_messaggio_personale" value="Conferma" />
    </form>

    <?php
    function salvataggio_messaggio_personale()
    {
    echo "Ciao a tutti";
    }

    if(isset($_POST['pulsante_messaggio_personale']))
    salvataggio_messaggio_personale();

    ?>

    </body>
    [/php]


  • User Attivo

    @Thedarkita said:

    Ciao Protone86,

    le funzioni php non sono funzioni javascript, non puoi richiamarle in quel modo perchè avvengono lato server e non lato client,

    Ciao ti ringrazio per la tua risposta 😄
    Siamo quasi sulla buona strada... c'è un piccolo problema: la funzione PHP viene mostrata anche al primo caricamento della pagina (quindi senza che il form sia stato compilato).

    Forse vuol dire che la variabile è già settata e quindi devo eliminare/svuotare in qualche modo la variabile inviata col metodo POST (e forse sto dicendo una grossa fesseria)?

    Non mi è chiara una cosa... perchè hai messo if(isset($_POST['pulsante_messaggio_personale'])) anzichè mettere solo "messaggio_personale?

    Grazie ancora per l'aiuto :gthi:


  • User Attivo

    Ho fatto una prova: ho fatto il logout dal mio sito (quindi ho eliminato la sessione aperta), ho rieffettuato l'accesso e la funzione non è stata mostrata al primo caricamento della pagina. E' stata mostrata solo quando ho compilato il form :yuppi:

    Quindi a questo punto la domanda è: come faccio a eliminare/svuotare questa variabile inviata con POST? :mmm:

    Grazie ancora!


  • ModSenior

    Avremmo potuto mettere anche messaggio_personale cioè l'altro input e non cambierebbe niente perchè vengono entrambi inviati.
    Che lo mostri al primo caricamento della pagina mi sembra strano, se non arrivi a quella pagina mediante un altro form...


  • User Attivo

    @Thedarkita said:

    Avremmo potuto mettere anche messaggio_personale cioè l'altro input e non cambierebbe niente perchè vengono entrambi inviati.
    Che lo mostri al primo caricamento della pagina mi sembra strano, se non arrivi a quella pagina mediante un altro form...

    Sorry, ero io che al caricamento della pagina riconfermavo l'invio del modulo :bigsmile:

    Grazie mille per l'aiuto! Ciao ciao :ciauz: