- Home
- Categorie
- Coding e Sistemistica
- Coding
- Creare e richiamare una funzione PHP in un form HTML. Dove sbaglio?
-
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?Grazie
-
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]
-
@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
-
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
Quindi a questo punto la domanda è: come faccio a eliminare/svuotare questa variabile inviata con POST?
Grazie ancora!
-
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...
-
@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
Grazie mille per l'aiuto! Ciao ciao