Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Mi spiego meglio, il form deve essere visibile e deve mostrare gli altri input richiesti
ma la funzione non deve essere chiamata fino a quando viene cliccato sul submit
Secondo me stai facendo un po' di confusione tra codice server-side e client-side.
Php, come sai, viene eseguito lato server; quando la form viene visualizzata nel browser, Php ha già finito il suo lavoro.
Se ho capito bene tu vuoi eseguire una funzione dopo un certo evento avvenuto lato client, quindi è il client che si occupa di gestirlo, mentre Php sta sul server.
Hai quindi due possibilità:
gestisci l'evento e le relative azioni con Javascript
usi AJAX (che comunque ti richiede l'uso di Javascript) per mandare una chiamata al server ed eseguire il codice Php lato server
Dipende da quello che devi fare, ma se vuoi solo nascondere una parte di form, penso sia più comodo fare tutto con Javascript.