Così "a occhio" (non ho di solito il tempo di "spulciare" tutti i codici così "lunghi" per il forum...) mi sembra ci sia un errore di fondo di comprensione sul funzionamento del PHP: lo script è interpretato per intero generando un codice HTML che poi è passato al browser che lo "renderizza" a video, quindi non puoi pensare che dentro un ciclo una variabile prende un valore "IN BASE A UN CLICK" perchè non ci sono click di interazioni se non DOPO.
Per associare una variabile di sessione in base a un click su un bottone devi far sì che lo script richiamato dal bottone (probabilmente quello di gestione del form) rilevi qual è stato premuto e imposti la variabile di conseguenza.