Pulsante Invia immagine all’interno di un modulo

Ho un modulo che ha il pulsante Invia in forma di un’immagine. Quando l’utente fa clic sul pulsante dell’immagine, il pulsante immagine dovrebbe svolgere il ruolo di pulsante di invio.

Esempio di codice:

Gestire l’invio:

 if($_POST['btn_opentextbox']) { //do something } 

Sorprendentemente, il codice sopra usato per funzionare perfettamente bene in Firefox. Tuttavia, una volta che ho aggiornato il mio Firefox ieri, non ha funzionato affatto. Faccio clic sul pulsante, la pagina viene aggiornata e non succede nulla. Il codice inoltre non funziona in IE.

Nota: funziona in Chrome.

Voglio che funzioni in Firefox, IE, ecc.

Eventuali suggerimenti?

puoi aggiungere un campo nascosto

  

e in php puoi farlo

 if($_POST['action'] == "Submit Form"){ do something } 

spero che questo aiuto.

Dovresti usare un normale pulsante di submit e usare CSS per sostituire l’aspetto del pulsante con un’immagine . Questo dovrebbe funzionare in tutti i browser.

per pulsante di invio immagini

il codice php è

  if(isset($_POST['btn_opentextbox_X']) || isset($_POST['btn_opentextbox_Y'])) { //do something } 

Il buon codice php è:

  if ($_POST["btn_opentextbox_x"]) && ($_POST["btn_opentextbox_y"]) { ...... } 

Cerca invece btn_opentextbox_x o btn_opentextbox_y . (In realtà non è _ ma PHP lo maneggia).

Alcuni browser non riescono a inviare il valore per le mappe immagine lato server, solo le coordinate.

E sembra che tu abbia dimenticato l’attributo alt .


In alternativa, utilizza un pulsante di invio effettivo anziché una mappa immagine:

  

… ma nota che alcune versioni di IE invieranno il contenuto HTML anziché il valore quando viene inviato.

Hai più pulsanti in tale forma e devi sapere che il modulo è stato inviato? Se è presente un solo pulsante di invio, suggerisco di utilizzare il seguente codice:

 if ($_SERVER['REQUEST_METHOD'] == 'POST') { // process form submission header('Location: page.php?result=success'); } 

In questo modo sarai sicuro che il modulo è stato inviato ed eviterà anche il doppio invio se l’utente preme il pulsante di ricarica dopo che è stato inviato il modulo.